2017-11-12 1 views
0

Here is a link. 나는이 메모리 누출이 무엇인지 찾기 위해 거의 모든 것을 보냈고 3 개의 js를 많이 탐구하고 모든 것을 검색했지만 무슨 일이 벌어지는 지에 대한 답을 찾을 수 없다. 나는 geometry.dispose 또는 material.dispose가 여기에 도움이 될 것이라고 생각하지만 그들은 그렇게 보이지 않습니다.장면에서 메쉬를 제거하는 것과 관계없이 Three.js 메모리 누수가 발생합니다. 내가 누설 할 수없는 메모리 누수라고 생각하는 바이올린에 대해

Do I somehow still have reference to all of the meshes/geometries/materials 
somewhere even though I can't see them? 

내가 대신 낡은를 재사용의 많은 블록을 만드는 중이라서 이유를 궁금해하는 경우, 그것은 편리를 벗어나 새로운 블록을 생성하는 것은 눈에 띄게 내 코드를 느리게하지 않기 때문에 내가 볼 수없는 이유 할 수 없어야한다. 나는 왜 내 기억이 결코 풀려나지 않을지 이해하지 못하고 결국 크롬이 얼거나 붕괴 될 것이다.

이전 블록을 다시 사용하려는 솔루션을 발견하지 못하면 너무 나빠질 것이라고 생각하지 않습니다.

+0

이미 솔루션을 결정했음을 알고 있지만 이와 같은 경우 블록을 인스턴스화하는 것이 좋습니다. 그렇게하면 원하는만큼 많은 것을 만들 수 있고 모두 원 블록을 참조하게됩니다. https://threejs.org/examples/webgl_buffergeometry_instancing.html – TheJim01

답변

0

형상과 재질을 재사용하여 메모리 누수 문제를 해결했습니다. 새로운 기하학/재료를 만드는 것이 메모리 누수를 만드는 방법을 모르지만 실제로 큰 차이를 만들었습니다.