【问题标题】:Out of memory .NETCF Windows Mobile 5内存不足 .NETCF Windows Mobile 5
【发布时间】:2011-09-01 11:52:13
【问题描述】:

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

直到最近,该应用程序运行良好。数据量如此之大,以至于我们经常遇到内存不足异常。使用 Hibernate 事件,我已经确认操作系统确实在要求应用程序释放资源(Hibernate 事件不断触发)。问题是我真的看不到任何可以释放的实质性内容 - 列表和字典等都被应用程序使用。

我知道 Mobile 5/6 中有 32 MB / 应用程序的硬性限制(实际上只有 18-20 MB,每个 http://dev.fittingsites.com/bol/2008/windows-mobile-6-1-memory-management-changes)。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 只是说。我有一个到处使用数据集的移动应用程序。如果几年前我有关于 ResultSets 的信息,我现在可能不会出现内存不足错误。
    猜你喜欢
    • 1970-01-01
    • 2014-05-22
    • 2010-10-15
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多