内存不足.NETCF Windows Mobile 5

时间:2011-05-25 06:16:51

标签: memory windows-mobile-5.0 .net-cf-3.5

我们有一个用C#编写的.NETCF 3.5应用程序,我们使用一些相当大的列表和对象字典,填充来自SQL Server的数据并持久保存到设备上的SQLCE数据库。

应用程序运行良好,直到最近。数据量使得我们经常会出现内存异常。使用Hibernate事件,我已经确认操作系统确实要求应用程序释放资源(Hibernate事件不断被触发)。问题是我真的没有看到任何可以释放的实质内容 - 应用程序正在使用列表和词典等。

我知道Mobile 5/6中存在32 MB / app的严格限制(实际上只有18-20 MB,每http://dev.fittingsites.com/bol/2008/windows-mobile-6-1-memory-management-changes}。

我在这里有点不知所措。如果应用程序需要大约25 MB才能运行,它如何在Mobile 5上运行?是否存在变通方法,例如在内存映射文件或类似内容中存储列表或词典,这些变量不需要大量工作(或者需要大量工作)?

1 个答案:

答案 0 :(得分:1)

您使用哪种方法从SQLCE数据库中读取数据? SQLCE提供两种主要方法:DataSetsResultSets。众所周知,DataSet会消耗大量内存并降低应用程序性能。如果您使用的是DataSet,我建议您尝试将应用程序切换为使用RecordSet。有关详细信息,请参阅this page