代号为 1 的大数据内存不足

Posted

技术标签:

【中文标题】代号为 1 的大数据内存不足【英文标题】:Out of Memory with large data in codename one 【发布时间】:2017-10-05 20:10:30 【问题描述】:

我的代号 一个应用程序下载大约 16000 条数据记录(每条记录中大约 10 个字段)。

在我的 android 手机(OS6.0,RAM 2GB)上,它能够加载 8000 到 9000 条记录,但随后显示内存不足错误。

从跟踪来看,它似乎用完了分配给应用的堆内存。

请问有什么建议是处理大量数据的理想方法吗?

Here is the log file

【问题讨论】:

【参考方案1】:

手机上的 RAM 数量并不重要。操作系统占用大约一半,然后将其余部分分配给并行运行的各种应用程序。你通常会少很多看到What is the maximum amount of RAM an app can use?

您需要检查您的代码并检查是什么占用了内存。每条 1kb 的 16k 条记录为 16Mb,这可能不会导致应用程序崩溃,所以问题是内存在哪里占用,我建议阅读 performance section of the developer guide 以了解内存使用情况。

【讨论】:

【参考方案2】:

这可能不适用于您的情况,但是否可以一次只下载 x 条记录?然后,当用户采取一些行动(滚动、点击下一页等)时,它会加载下一批?代号一有一个很棒的无限滚动器实现。请参阅此处的示例 - https://www.codenameone.com/blog/property-cross-revisited.html

【讨论】:

以上是关于代号为 1 的大数据内存不足的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?

手机提示存储空间不足的几个解决方法

iPhone 内存不足?7招搞定!

服务器存储空间不足无法处理此命令

在SQL中运行程序显示内存不足

多次迭代内存不足