减少 Windows Phone 应用中的内存使用量



我正在设计一个应用程序,它有一个包含 90 多个项目的 ListPicker。每个项目由 2 个 PNG 图像(每个大小<3KB)和一些文本组成。

我创建了一个新类来表示我的项目,并且我正在使用创建此类的列表

List<ClassName> ClassNameList = new List<ClassName>();

在代码中,并使用以下命令将项追加到列表中:

ClassNameList.Add(new ClassName() {var1=..., var2=...});

就我而言,var1 和 var2 是项目中包含的 PNG 图像的路径。

然后,我在 <itemtemplate> 中使用数据绑定将我的项目绑定到列表。

当我在模拟器中加载 ListPicker 时,内存使用量飙升至 256MB 以上。因此,我无法为较新的 256MB RAM 手机提交我的应用程序。有没有办法减少内存使用量?

图像文件大小并不意味着它将使用相同数量的内存;通常图像采用压缩格式(在您的情况下是PNG),文件大小减小。但是,这并不意味着它将使用更少的内存。另请阅读本主题(尽管它是关于 WPF 的,但在任何情况下它仍然是相同的原则)。

我不知道您的情况,但是如果您有很多相同的图片,您可能需要考虑缓存图像(或使用例如代理模式)以减少内存中的重复图像。

最新更新