如何控制 Cordova 中的内存使用?

How can you control memory usage in Cordova?

我现在在 iOS,但这个问题也适用于 Android。我正在查看 Xcode 中的内存图,我的应用程序在达到 240MB 左右时崩溃,我相信 iOS 正在杀死它,因为它占用了太多内存。

我总是可以通过在应用程序的页面之间导航来让它崩溃。 (这是一个 SPA,客户端 HTML 呈现。)如果我停止导航一分钟,内存将下降到 140MB。

这是 OSX 中的同一页 Chrome:

在这种情况下,停止导航后,内存不会自行减少。相反,图表末尾的悬崖是我按下垃圾收集按钮(将其从 170MB 降低到 60MB)。

如何阻止我的应用程序崩溃?

  1. 是否有我可以在 Cordova 中调用的与垃圾收集按钮等效的按钮?
  2. 我可以 iOS 为我的应用程序提供特殊的大内存津贴吗?
  3. 如果用户在一分钟内在页面之间导航 X 次,我可以设置一个超时屏幕,告诉他们下一分钟不能使用该应用程序,因为垃圾收集正在进行 XD
  4. 有什么方法可以在 JS 渲染时降低上坡时的内存使用量 HTML?

此外,这是具有 HTML 个节点的 Chrome 图 – 按比例增长,但节点保持在同一级别 post 垃圾收集。

您可以尝试使用 WKWebView 插件,它有时可以减少 iOS Cordova 应用程序的内存使用量。