Как вы можете контролировать использование памяти в Кордове?

Сейчас я на iOS, но вопрос относится и к Android. Я смотрю на график памяти в Xcode, и мое приложение падает каждый раз, когда он обходит около 240 МБ, я считаю, что iOS убивает его, потому что он занимает слишком много памяти.

Я могу последовательно его обрушивать, перемещаясь между страницами в приложении. (Это SPA, клиентский HTML-рендеринг.) Если я остановлюсь на минутку, память опустится до 140 МБ.

Вот такая же страница в Chrome OSX:

enter image description here

В этом случае, после прекращения навигации, память не уменьшается сама по себе. Вместо этого, скала в конце графика, я нажимаю кнопку сбора мусора (снимает ее с 170 МБ до 60 МБ).

Как остановить приложение от сбоев?

  • Есть ли эквивалент кнопки сбора мусора, которую я могу вызвать внутри Кордовы?
  • Могу ли я получить iOS, чтобы предоставить моему приложению специальное большое резервное копирование памяти?
  • Если пользователь перемещается между страницами X раз в течение минуты, я могу установить экран тайм-аута, который говорит им, что они не могут использовать приложение в течение следующей минуты, в то время как сбор мусора идет XD
  • Любой способ уменьшить использование памяти при наклоне вверх, поскольку JS отображает HTML?

Кроме того, вот график Chrome с узлами HTML - растет пропорционально, но узлы остаются на уровне сборки мусора на уровне.

enter image description here

Ответы

Ответ 1

Вы можете попробовать использовать плагин WKWebView, что иногда может сократить использование памяти iOS для приложений Кордовы.