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

Lor*_*ren 17 javascript web-applications ios cordova single-page-application

我现在在iOS上,但问题也适用于Android.我正在看Xcode中的内存图,我的应用程序崩溃大约240MB,我相信iOS正在杀死它,因为它占用了太多的内存.

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

这是OSX Chrome中的同一页面:

在此输入图像描述

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

如何阻止我的应用崩溃?

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

此外,这里是带有HTML节点的Chrome图表 - 按比例增长,但节点在垃圾收集后保持在同一级别.

在此输入图像描述

Reu*_*end 4

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