javascript – 三个js内存管理

前端之家收集整理的这篇文章主要介绍了javascript – 三个js内存管理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个很大的场景,有很多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等的morphTarget

试图将obj设置为null,但仍然没有内存减少.

任何想法我做错了什么?

它的游戏水平和玩家可以改变从一个到另一个.经过一些改变,内存使用量增加到了很高.这就是为什么我想在级别更改之前从内存中删除所有对象.

解决方法

最有可能的是,您需要添加一些或全部以下内容
geometry.dispose();
material.dispose();
texture.dispose();

看看这些例子:

http://mrdoob.github.com/three.js/examples/webgl_test_memory.html

http://mrdoob.github.com/three.js/examples/webgl_test_memory2.html

three.js r.60

猜你在找的JavaScript相关文章