WebGL、Three.js 与 WebGPU:3D 可视化的渲染预算
3D 页面卡顿通常不是并发问题,而是单帧做了太多工作。先设定帧预算,再决定模型、材质和后处理的取舍。
1. 先拆单帧预算
60 FPS 的总帧预算约为 16.7 ms。重复物体使用实例化,静态几何体按需合并,并检查材质切换与 draw call。
2. 渲染调用不是性能结论
renderer.render(scene, camera);
这一行只负责提交场景。真正要检查的是它之前更新了多少对象、材质和缓冲区,以及 GPU 执行了哪些 pass。
3. CPU 与 GPU 分开采样
固定模型、相机路径、分辨率和设备,分别记录脚本时间、draw call、GPU pass 与显存。没有这些前提,不引用孤立的 FPS。
4. 加载与释放也在预算内
除了功能正确性,还要检查加载失败、空数据、重复操作、键盘可用性和组件卸载后的资源清理。涉及服务端的策略需要与接口约定一起验证。
5. 小结
先建立可复现的基线,再做小范围调整并复测。这样得到的结论才能用于后续维护。

