У меня большая сцена с большим количеством Mesh и MorphAnimMesh. Я хочу освободить память при удалении сеток. Если я правильно знаю, это лучший способ сделать:
for ( var i = scene.children.length - 1; i >= 0 ; i -- ) {
var obj = scene.children[i];
scene.remove(obj);
obj.deallocate();
obj.geometry.deallocate();
obj.material.deallocate();
obj.material.map.deallocate();
}
Если после этого я проверю использование памяти в диспетчере задач, ничего не изменится. (попытался подождать несколько минут для GC, но ничего.) Снимок памяти Google Chrome показывает все еще объекты. morphTargets в THREE.Geometry @1862203 и т.д.
Попробовал установить obj в значение null, но по-прежнему не уменьшается память.
Любая идея, что я делаю неправильно?
Его игра с уровнями и игрок может переходить от одного к другому. После нескольких изменений использование памяти увеличивается до действительно высокого. Вот почему я хочу удалить весь объект из памяти до изменения уровня.