Memory leak with three.js and many shapes

2020-02-09 06:12发布

问题:

I have created some code which very quickly eats up memory and dies.

I have whittled this down to the torus generation / removal sections of the code. I have checked that the length of the scene array and my torus array are shrunk as shapes are removed so they appear to be well managed, but I am not sure where the memory is leaking.

Any ideas?

http://jsfiddle.net/eVwP3/

回答1:

In webGLRenderer, after removing a mesh with

scene.remove( mesh );

you can deallocate the memory with

mesh.dispose();
geometry.dispose();
material.dispose();
texture.dispose();

See http://threejs.org/examples/webgl_test_memory.html and http://threejs.org/examples/webgl_test_memory2.html.

EDIT: updated to three.js r.69

P.S. Nice demo. You might want to consider creating a pool of objects and reusing them, rather than continually allocating and deallocating.