我正在尝试在Visual Studio中配置我的UWP(通用Windows平台)应用程序,以查看导致我的进程内存使用率如此之高的原因。
我一直在使用Visual Studio内置的诊断工具,但我没有运气。 它一直显示我的进程内存使用量为93兆字节,而堆显示为12.17 MB,托管堆显示为1.56 MB。
只有另一个实例,我的进程内存使用量达到了大约458 MB并且不断攀升,但是当我拍摄快照时,它没有告诉我任何应该导致它的对象的值,它声称使用的实际内存比进程内存少得多。
我不确定我是否只是不理解探查器是如何工作的,或者我只是完全做错了。
答案 0 :(得分:3)
简单的答案是 - 即使你的应用程序是用C#编写的 - 它仍然会分配大量的本机内存。
通常,您在应用中加载的位图使用大部分内存,因此我会开始考虑减少内存中位图的数量和分辨率,并确保它们不会泄漏。
第二 - 确保您的列表已虚拟化。如果在内存中加载1000张图像 - 即使它们很小,它们仍然会占用大量内存。默认情况下,ListBox
,ListView
或GridView
等列表控件是虚拟化的,除非您将它们放在ScrollViewer
中或将默认ItemsPanel
更改为is {虚拟化。