代号为 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 功能(内存不足错误)?