【发布时间】:2012-12-04 14:18:19
【问题描述】:
我有一个包含大量 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 内存快照显示对象仍然存在。 THREE.Geometry @1862203 等中的 morphTargets。
尝试将obj设置为null,但仍然没有减少内存。
知道我做错了什么吗?
这是一个有关卡的游戏,玩家可以从一个到另一个。经过几次更改后,内存使用量增加到非常高。这就是为什么我想在级别更改之前从内存中删除所有对象。
【问题讨论】:
标签: javascript memory-management three.js