2013-04-27 102 views
0

我目前正在创建Windows Phone应用程序,并遇到了限制正在使用的内存量的问题。我正在使用用于Windows Phone分析的内置工具。Windows Phone配置文件和高内存

的应用程序不会在同一时间执行以下操作: *要被显示在背景中的API调用(使用Newtonsoft JSON.NET库解析结果) *计算的对象,并且当在完成计算时,绑定它。

问题是,内存的数量真的很高。它使用平均大约80-90 MB,偷窥超过90 MB(此应用程序必须在商店中)。

应用程序执行分析显示以下注释:系统线程和托管线程的内存使用率都很高。它还表示记忆是“纹理主导”。 所以我做了记忆分析。

Album of profiling

探查注意到一个“中的存储器量高纹理分配”。大多数情况下这大约是50%。 有关这方面的问题:纹理也是自定义用户控件吗?我记得读的东西,当我看看堆汇总每个用户的控制被保存为位图在内存

,它显示了几个高值。 我应该如何解读这些数据?这些数字应该如何与对方相比?

看看类型,字符串使用13%。这是否意味着String使用最多的内存?

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

我无法找到如何使用分析工具:-(而且我个人觉得很难理解(例如,如果你把它比作Android的分析工具)。

TL明确教程; DR:帮助理解分析工具,并试图找到什么是提前使用这么多的内存

感谢

回答

0

你有太多的图像在您的应用程序的大部分时间高内存是不是造成的!?适当的图像或不好的做法

+0

感谢您的回答! 没有使用图像。我删除了它们以查明这是否是高内存使用率的原因。 – Solutio 2013-05-06 09:32:27