我有一个适用于 Android 的 Mono 应用程序,当我连续多次使用 XMLDocument 类加载和解析 XML 文档时,我认为该应用程序内存不足。
我看到垃圾收集器报告我只有 7367K 可用内存,这似乎相当低。
如何通过配置或在运行时增加它?
我有一个适用于 Android 的 Mono 应用程序,当我连续多次使用 XMLDocument 类加载和解析 XML 文档时,我认为该应用程序内存不足。
我看到垃圾收集器报告我只有 7367K 可用内存,这似乎相当低。
如何通过配置或在运行时增加它?
恐怕每个应用程序使用的 Android 虚拟机内存非常有限:大多数情况下为 16MB,其他情况下为 24MB。我也遇到了这个限制。首先,您应该检查您的应用程序是否没有内存泄漏。如果这还不够,那么您可能需要考虑强制调用垃圾收集器: http: //docs.xamarin.com/android/advanced_topics/garbage_collection。您还应该记住,调用 GC 会使您的应用程序变慢。
如果有人有更好的选择,我会很高兴知道的!
我发现 XmlDocument 中有一个错误会导致它在某些情况下崩溃(按顺序快速加载大型 XML 文件(~180K))。我将向 Xamarin 报告此问题,看看他们是否可以进一步调查。
在我将代码转换为使用 XmlTextReader 后,内存行为发生了变化。现在系统会动态增加在 GC 周期中报告的堆大小。大小会根据需要上下浮动,不会崩溃。
使用 XmlDocument 代码,它没有增加堆大小,而是崩溃了。