Утечка памяти в приложении javascript
Здравствуйте, коллеги!
Подскажите, пожалуйста, как решить проблему с утечкой памяти. Суть проблемы следующая: есть приложение, написанное на js с использованием библиотеки THREE.js, которое строит 3D модель и выводит ее на страницу. После каждого обновления модели, вкладка браузера требует все больше памяти. После 50-100 обновлений память заканчивается и браузер виснет. Вот скриншот консоли http://joxi.ru/Dr8v4KRI4xLd12 Первый снимок до обновления модели, второй - после. Там появляются какие-то массивы, хотя у меня в коде массивов-то и нет: там все объекты. С DOM работы особо никакой не производится, все глобальные переменные перед обновлением модели затираются. Подскажите, как найти в коде тот объект, который эти проблемы создает? Как вообще решаются такие проблемы? Какая нужна дополнительная информация чтобы можно было понять, в чем проблема? |
наиболее частый кейс - в каждой итерации происходит подписка на событие, а отписка потом не делается. В итоге функции-обработчики события остаются в памяти, и держат в замыканиях объекты.
|
Цитата:
|
Цитата:
console.log понавтыкать, брекпоинтов наставить, в общем, увидеть пошагово, что происходит. иногда помогает способ выявления проблемного кода методом "деления пополам" - просто тупо выкидываешь половину логики, смотришь осталась проблема или нет, и соответственно в какой половине косяк. |
Коллеги, кто-нибудь может за деньги решить мою проблему?
|
staircaseMaker, создайте тему в разделе форума "работа".
|
Цитата:
|
Коллеги, всем спасибо, проблему решили. Если кому-то будет интересно, то проблема была решена таким образом: после удаления объектов из сцены при обновлении модели дополнительно вызывается метод dispose для геометрии и материала для каждого объекта
|
Часовой пояс GMT +3, время: 08:53. |