【问题标题】:Is it possible to avoid OOM when loading a large data set using Cordova?使用 Cordova 加载大型数据集时是否可以避免 OOM?
【发布时间】:2016-03-25 04:11:25
【问题描述】:

我正在开发一个 Phonegap 应用程序,该应用程序主要处理来自 Firebase 并存储在本地存储和 javascript 变量中的小型 JSON 数据集。

虽然我有时需要处理更大的 JSON 数据集 (> 2Mb)。发生这种情况时,我的设备的内存使用量会在从 Firebase 中提取数据时大幅增加,并最终导致应用程序崩溃。

我在计算机上的 Chrome 中运行它,发现内存使用量上升到 ~2.5Gb同时检索数据。检索到所有数据后,内存使用率下降到正常水平。

有其他人遇到过这个问题或知道解决方法吗?

【问题讨论】:

    标签: cordova memory firebase


    【解决方案1】:

    您需要对数据进行分块

    Firebase 说

    有关分块数据和创建大数据备份的更多信息,请参阅 REST API 的查询参数。 startAt、limitToFirst 和 shallow=true 参数一起使用可用于为任意数量的数据建立索引键,并在可管理的段中检索它。

    https://www.firebase.com/docs/rest/guide/retrieving-data.html#section-rest-queries

    【讨论】:

    • 谢谢,我去看看!
    • 这并没有真正帮助,因为我仍然需要将更改侦听器附加到 Firebase 节点。可以为初始下载分块数据,但是一旦下载数据,我需要执行以下操作:ref.on("child_added", function(snap, prev) { // do stuff }); 不幸的是,这样做会导致我的 iOS Cordova 应用程序崩溃,并在 bmalloc:VMHeap::grow( ) .这似乎是 WebView 所固有的问题,不允许使用比 iOS 允许的更多的内存?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2013-02-11
    • 2019-08-04
    • 1970-01-01
    • 2018-10-04
    相关资源
    最近更新 更多