关于 threejs-performance
面向 Three.js 项目的性能与内存优化指导,适用于需要分析瓶颈并验证改动的开发者。内容强调基于测量区分 CPU、GPU、绘制调用和内存问题,并检查资源所有权与释放。
主要功能
- 01记录可复现的性能基线
- 02区分 CPU、GPU 与内存瓶颈
- 03按瓶颈选择优化方式
- 04管理场景资源所有权
- 05检查重复挂载后的内存趋势
- 06核对 API 版本差异
适用场景
- 01分析场景帧时间问题
- 02定位绘制调用或填充率瓶颈
- 03排查重复挂载后的资源增长
- 04比较优化前后的性能与外观
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cesartevisual/ threejs-skills --skill threejs-performance安装后在 Claude Code 中输入/threejs-performance确认已加载。
附带文件references/profile.md
详细介绍
性能与内存
使用项目已安装的版本和现有架构。这些说明是对用户任务的补充,不授权进行无关更改或外部操作。
在有代表性的设备上复现,并记录场景状态、视口、像素比、后端、资源大小和帧时间分布。区分首次加载、解码和编译卡顿与稳态帧开销。请阅读性能分析工作表,以便按可重复的方式记录优化前后的数据。
确定瓶颈属于 CPU 工作、提交/绘制调用、GPU 着色/填充、传输还是内存。降低分辨率以探测像素开销;隔离阴影/效果;比较静态更新与动画更新。每次只更改一个主要变量。
绘制调用占主导时使用实例化/批处理;填充占主导时减少过度绘制/效果分辨率;CPU 受限时简化动画或将适当的工作移至线程外。减少三角形数量并不能解决所有瓶颈。避免逐帧分配和反复重新编译着色器。
明确共享缓存与实例之间的资源所有权。释放自行持有的几何体、材质、纹理、渲染目标、控件、混合器、观察器和监听器。释放材质不会释放其纹理;释放渲染器不会释放所有由场景持有的对象。不要释放仍在使用的缓存条目。
预热后测量重复挂载/卸载和模型替换的情况。内部缓存可能会导致计数器不为零;应关注无法解释的上升趋势,而不是要求归零。CPU 堆和 renderer.info 只能提供部分证据,并非 GPU 内存的精确数据。
只有在测得的性能提升不影响必需的外观和交互时,才接受优化。报告设备、方法、优化前后的数值,以及测量的局限性。
API 参考
有关准确的签名和特定修订版本的行为,请参阅官方文档。如果无法访问文档,请检查已安装的类型定义/源代码,并说明仍存在哪些不确定之处。