Мы разрабатываем одностраничное веб-приложение с ZK, которое постоянно общается с сервером и обновляет части своих экраны. Обновление может быть таким же частым, как 1 с. Во время этих обновлений теряются ссылки на большие количества объектов JS, и в конечном итоге эти объекты должны быть очищены сборщиком мусора.
Насколько мы поняли, Chrome только запускает сборщик мусора на неактивных вкладках. Это проблема для нас, потому что вкладка приложения обычно активна и почти никогда не обновляется, поэтому объекты JS никогда не собираются. Если вы остаетесь активным в течение достаточного времени, вкладка в конечном счете выйдет из строя (сообщение All Snap).
Нам нужно инициировать сборку мусора вручную. До сих пор мы пытались запустить Chrome с помощью --js-flags="--expose-gc"
и запускать gc()
, но он выдает исключение:
ReferenceError: gc is not defined
Этого не происходит в Firefox - использование памяти более или менее постоянное.
Повторное обновление страницы не является параметром.
Мы будем благодарны за любые предложения.
EDIT: мы попытались запустить window.gc()
и gc()
как в версиях Chrome 23.0.1271.97 m
, так и 25.0.1364.2 dev-m