0

我有一个适用于 Android 的 Mono 应用程序,当我连续多次使用 XMLDocument 类加载和解析 XML 文档时,我认为该应用程序内存不足。

我看到垃圾收集器报告我只有 7367K 可用内存,这似乎相当低。

如何通过配置或在运行时增加它?

4

2 回答 2

0

恐怕每个应用程序使用的 Android 虚拟机内存非常有限:大多数情况下为 16MB,其他情况下为 24MB。我也遇到了这个限制。首先,您应该检查您的应用程序是否没有内存泄漏。如果这还不够,那么您可能需要考虑强制调用垃圾收集器: http: //docs.xamarin.com/android/advanced_topics/garbage_collection。您还应该记住,调用 GC 会使您的应用程序变慢。

如果有人有更好的选择,我会很高兴知道的!

于 2012-08-14T10:54:45.643 回答
0

我发现 XmlDocument 中有一个错误会导致它在某些情况下崩溃(按顺序快速加载大型 XML 文件(~180K))。我将向 Xamarin 报告此问题,看看他们是否可以进一步调查。

在我将代码转换为使用 XmlTextReader 后,内存行为发生了变化。现在系统会动态增加在 GC 周期中报告的堆大小。大小会根据需要上下浮动,不会崩溃。

使用 XmlDocument 代码,它没有增加堆大小,而是崩溃了。

于 2012-08-15T20:44:50.357 回答