Windows Phone分析和高内存

时间:2013-04-27 12:18:59

标签: c# windows-phone-7 profiling windows-phone

我目前正在创建Windows Phone应用,但我遇到了限制所用内存量的问题。我使用内置的Windows Phone分析工具。

该应用程序同时执行以下操作: *后台的API调用(使用Newtonsoft JSON.NET库解析结果) *计算要显示的对象以及计算完成后,将其绑定。

问题是,内存量非常高。它平均使用大约80-90 MB,超过90 MB(这个应用程序必须在商店)。

App执行分析显示以下注释:系统线程和托管线程的内存使用率都很高。它还说内存是"纹理占优势"。 所以我做了记忆分析。

Album of profiling

剖析器在内存中记录了大量的纹理分配"。大多数时候这大约是50%。 关于这个的问题:纹理也是自定义用户控件吗?我记得读过一些东西,每个用户控件都被保存为内存中的位图

当我看一下堆摘要时,它会显示几个高值。 我应该如何解释这些数据?如何将数字与彼此进行比较?

看看Types,String使用13%。这是否意味着String使用的内存最多?

这是否意味着字符串使用最多的内存?或者我正在寻找使用最多内存的错误位置?例如,我应该看一下"在开始时保留的视觉效果"在堆摘要中? 如果我看那里,一些值是由我自己的书面用户控件引起的。 我使用的是Listbox(因为它支持UI虚拟化),但我使用自己的控件作为ListboxItem。我应该用Listboxitem替换它们吗?

我找不到关于如何使用性能分析工具的明确教程:-(我个人觉得很难理解(例如,如果将它与Android性能分析工具进行比较)。

TL; DR:帮助理解分析工具并尝试查找使用如此多内存的内容

提前致谢!

1 个答案:

答案 0 :(得分:0)

您的应用中是否有太多图片?大多数情况下,高记忆是由于没有适当调整的图像或不良做法造成的。