gpt4 book ai didi

Javascript THREEJS 和 GC

转载 作者:行者123 更新时间:2023-11-29 20:33:19 25 4
gpt4 key购买 nike

我尝试优化我的 threejs 场景,(即使不使用该场景也会增加 CPU 使用率)。我阅读了很多解决方案,并尝试使用 dispose() 删除网格内存(尽量避免内存泄漏)

labelMesh[i].geometry.dispose();
labelMesh[i].material.dispose();

但是当我检查 Javascript Profiler 时,dispose() 增加了 2 倍的 GC CPU。

没有处置(): enter image description here

使用处置(): enter image description here

我保留这个解决方案还是不保留?什么是最佳选择?

最佳答案

I keep this solution or no ? What is a best option ?

绝对推荐使用 .dispose()。关于这个主题实际上有一个官方指南:

https://threejs.org/docs/index.html#manual/en/introduction/How-to-dispose-of-objects .

但是,即使在正确调用 .dispose() 时,仍然存在阻碍 three.js 释放资源的问题(参见 https://github.com/mrdoob/three.js/issues/12447)。发生这种情况是因为 three.js 的内部渲染列表仍然包含对某些对象的引用。由于这些隐藏的引用,调用 .dispose() 将释放 GPU 内存而不是 CPU 内存。

解决此问题的方法是调用 renderer.renderLists.dispose()

three.js R107

关于Javascript THREEJS 和 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com