web-dev-qa-db-ja.com

コルドバのメモリ使用量をどのように制御できますか?

私は今iOSを使用していますが、質問はAndroidにも当てはまります。Xcodeのメモリグラフを見ていて、アプリが約240MBに達するとクラッシュし、iOSが強制終了していると思いますメモリを使いすぎているためです。

アプリ内のページ間を移動することで、常にクラッシュさせることができます。 (これはSPA、クライアント側のHTMLレンダリングです。)1分間ナビゲートを停止すると、メモリは140MBに減少します。

これはOSXChromeの同じページです:

enter image description here

この場合、ナビゲーションを停止した後、メモリはそれ自体で減少しません。代わりに、グラフの最後にある崖は、ガベージコレクションボタンを押すことです(170MBから60MBに下げます)。

アプリがクラッシュしないようにするにはどうすればよいですか?

  1. コルドバ内で呼び出すことができるガベージコレクションボタンに相当するものはありますか?
  2. IOSにアプリに特別な大容量メモリを与えることはできますか?
  3. ユーザーが1分間にX回ページ間を移動した場合、ガベージコレクションがXDになる間、次の1分間はアプリを使用できないことを通知するタイムアウト画面を表示できます。
  4. JSがHTMLをレンダリングしているので、傾斜の上のメモリ使用量を減らす方法はありますか?

また、ここにHTMLノードを含むChromeグラフ–比例して成長しますが、ノードはガベージコレクション後も同じレベルに留まります。

enter image description here

17
Loren

WKWebView プラグインを使用してみてください。これにより、CordovaアプリのiOSメモリ使用量を削減できる場合があります。

4
Reubend