Мы никак не можем иметь какое-то конкретное представление о том, что вызывает эту проблему, не зная больше о вашем приложении, не увидев ваш код и, возможно, не применив его, как описано ниже.
Это не общая проблема с webSockets.WebSockets можно открывать и получать данные годами, не увеличивая объем памяти
Эти проблемы решаются с помощью таких методов:
- Проверка кода (найдите место, где данные накапливаются бесконечно)
- Поиск статей о людях, имеющих схожие проблемы, иПосмотрите на их решения, чтобы увидеть, применимы ли они к вам.
- Инструкция по созданию снимков кучи, сравнение их с предыдущими и просмотр того, какие объекты накапливаются, а затем использование этих знаний для поиска источника накопления данных.
См. Как записать моментальные снимки кучи в Chrome для очень подробного описания отладки с использованием памяти.На самом деле нет ничего более конкретного, чем то, что мы можем вам сказать, основываясь на информации о лимитах, которую мы имеем в вашем конкретном случае.
Вероятно, вы можете полностью исключить webSockets из уравнения, не подключая ваш webSocket, а затем просто имитировать получение данных.из webSocket, запустив setInterval()
и перерисовывая вашу диаграмму снова и снова.Это может, по крайней мере, устранить часть вашего кода как подозреваемого.
К вашему сведению, вот еще пара статей, на которые стоит обратить внимание:
Утечка памяти при использовании диаграмм Google с ajax
Утечка памяти в линейных диаграммах Google
Советы по устранению утечек памяти из диаграмм Google Javascript с живыми (непрерывными) данными / потоками
Профилирование использования памяти в Chrome