[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Устранить утечку памяти в приложении javascript
staircaseMaker
Есть приложение, написанное на js с использованием библиотеки THREE.js, которое строит 3D модель и выводит ее на страницу. После каждого обновления модели, вкладка браузера требует все больше памяти. После 50-100 обновлений память заканчивается и браузер виснет. Вот скриншот консоли joxi.ru/Dr8v4KRI4xLd12 Первый снимок до обновления модели, второй – после. Необходимо сделать так, чтобы при обновлении модели память не утекала. Проблема где-то в ядре системы или в самой библиотеке three.js. Общий объем кода ядра системы (который и надо смотреть) в районе 1 тыс. строк. Документации нет, но в любой момент можно оперативно получить от наших разработчиков информацию что как работает и зачем нужно. Исходники скину по запросу.
Эли4ка
Цитата
получить от наших разработчиков

А не они разрабатывали, раз владеют информацией?
VeRTak
staircaseMaker

Если мне не изменяет память. Вам советовали найти хороших разработчиков во избежании проблем, кажется вы отказались, с купой платят дважды
staircaseMaker
Цитата (Эли4ка @ 5.07.2018 - 13:29)
Цитата
получить от наших разработчиков

А не они разрабатывали, раз владеют информацией?

Не совсем понял Ваш вопрос. Вы сможете решить мою проблему?
FatCat
Цитата (VeRTak @ 5.07.2018 - 15:19)
с купой платят дважды

Это 2 опечатки или тонкий юмор?
Свернутый текст
עם קופה משלמים כפול


_____________
Бесплатному сыру в дырки не заглядывают...
Эли4ка
Цитата
Не совсем понял Ваш вопрос. Вы сможете решить мою проблему?

У вас есть разработчики, которые предоставят информацию. почему они не могут решить проблему с утечкой?
staircaseMaker
Цитата (Santehnick @ 5.07.2018 - 21:49)
Посмотрите дифф памяти между снепшотами. Будет видно какие объекты застревают в памяти и там же если развернуть конструктор и выбрать объект будет видно почему сборщик мусора не может его удалить из памяти. Желтым цветом помечается код, который удерживает ссылку на этот объект. Эти участки кода нужно пофиксить и тогда сборщик сможет прибраться.

В threejs можно разрушить все геометрии, материалы и т.п. через метод dispose. Также часто замыкания, события и таймеры являются местами утечки памяти. Дебажьте, в той ут


Спасибо за толковые советы, но сначала я бы хотел попытаться найти человека, который это сделает вместо меня. Это разовая узкоспециализированная задача, поэтому мне не хочется в этом разбираться, а хочется заплатить за решение. Вот если найти специалиста не получиться, тогда буду сам разбираться
staircaseMaker
Коллеги, всем спасибо, благодаря [nick]A4Tech_Man[/nick], проблему решили. Если кому-то будет интересно, то проблема была решена таким образом: после удаления объектов из сцены при обновлении модели дополнительно вызывается метод dispose для геометрии и материала для каждого объекта
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.