Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Memory leak with three.js and many shapes

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/

like image 928
WizPip Avatar asked Dec 11 '22 21:12

WizPip


1 Answers

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.

like image 135
WestLangley Avatar answered Dec 14 '22 23:12

WestLangley