지금 열씸히 Metro Style App 프로그램을 만들고 있는데...
데이타 가져오고 할당하고 대부분 async 로 해주어야 제대로 작동하는 것 같네요..
헐... 우여곡절끝에 동작은 잘 되고 있는데..
메모리쪽을 모니터링 해보는데...
처음에 약 20MB 짜리 App 이... 데이타 몇번 불러 드렸다가...
없앴다가 하니까... 100MB 를 넘어선다는... ㅠ.ㅠ
제가 프로그램 단에서 메모리를 절약해 보려고
flush 시키고... 데이타 재사용 및 할당해제를 바로바로 처리하는 등등...
여러가지로 노력해보았으나.. 별다른 효과가 없네요...
혹시 Windows 8 APP 에서 async 로 데이타를 가져올때
자원 할당해제는 뭐 특별히 다른게 있는지요?
Comment 2
-
ivoryguard
2012.04.19 11:14
-
Jerry
2012.04.19 14:30
아.. 제가 만든 프로그램 뿐만아니라...
Studio 11 에서 제공하는 Templates 도 테스트 해보니까.. 동일한 증상이 나오네요...
Template -> Grid Application 역시 처음 로딩시에 초기 메모리 19M 정도인데
App 상에서 Group 화면에서 -> Detail 로 들어갔다 나왔다를 한 10번정도 하니까..
100M 에 도달하는 군요... 허걱... WinRT 쪽에 메모리 방식에 좀 문제가 있는 것은 아닐까요??
올리신 내용만 가지고는 뭐라 답변을 드리기가 어렵네요. 좀 상세한 내용을 올려주셔야 도움을 드릴 수 있을 것 같습니다.
그리고 원래 매트로 스타일 앱에서는 서버에서 데이터를 가져오는 부분은 무조건 Async로 하도록 되어 있습니다.
.NET에서는 Java와 같이 가비지 컬렉터가 알아서 필요없는 개체들을 없애주는데, GC.Collect() 메서드를 이용하면 강제로 가비지 컬렉션을 하게 만들 수는 있습니다만 일반적으로는 이렇게 잘 안하죠.