Демоверсия «Dynamically updated data» на веб-сайте HighStock, похоже, утечка памяти в текущей версии Google Chrome (24.0). Я пробовал это в Mac OS X 10.8.2 и Windows 7 (64-разрядная версия). Я также пробовал Safari 6.0.2 на OS X, и IE9 и Firefox 18 на Windows 7. Протекание, похоже, происходит в Chrome, и это всегда происходит.Утечка памяти HighCharts/HighStock с помощью addPoints() только в Chrome
Учитывая, что это довольно значительная демонстрация, я ожидал, что она будет работать хорошо. Но, учитывая достаточно времени, он падает в Chrome, вызывая страницу ошибки «Aw, Snap». Это может занять много времени в демо, как написано, но если вы нажмете на ссылку jsFiddle и измените вызов setInterval()
на 100 мс вместо 1000 мс, утечка будет довольно очевидной. Реальное приложение с несколькими сериями и приличным количеством данных может привести к краху Chrome всего за несколько минут.
Обратите внимание, что при постоянном добавлении данных параметр «сдвиг» в addPoints()
всегда правдивый, что означает, что старые данные отбрасываются так же быстро. Таким образом, использование памяти должно быть довольно постоянным - и в браузерах, кроме Chrome, это так.
Я не уверен, как определить, является ли это ошибкой Chrome или HighCharts. И я не нашел полезного обходного пути. Был бы весьма признателен окончательный ответ на любой аспект.
Скорее всего, ошибка HighCharts, которая наиболее заметна в Chrome, поскольку она запускает каждую вкладку в качестве собственного процесса. Вот подсказка, которая может помочь, если вы сможете найти, что использует память: http://stackoverflow.com/questions/5181954/memory-leak-in-javascript-chrome –
Я запускал Safari без открытия других веб-страниц. Также IE. Похоже, что только у Chrome появляется увеличение использования памяти. –
Просто попробовал связанное демо (с обновлением 100 мс) с Chrome 23 под Linux (Fedora 14) и не имел утечек. Тем не менее, в chrome 24 на Windows 7 он потребляет дополнительную мега-память примерно каждые 2 секунды! – Mark