首页 / deck.gl / 使用示例
性能对比
二十六万个点,两套渲染配置。切换后观察右上角帧率, 能直观看到描边、抗锯齿、拾取与多层叠加各自带来的代价。
源码与运行效果
说明
点数据围绕六座城市聚集,生成一次后反复使用。两种模式共用 同一份数组引用,切换时不会重新上传顶点,帧率差异只来自 渲染配置本身。
| 模式 | 配置 | 额外负载 |
|---|---|---|
| 精简 | 1 个图层、半径 1.6 像素、无描边、不拾取 | 顶点绘制 |
| 高开销 | 主图层描边 + 抗锯齿 + 拾取,另加两层半透明光晕 | 三倍几何 + 拾取缓冲 + 填充叠加 |
帧率是怎么统计的
requestAnimationFrame 每触发一次计数加一,
每 600 毫秒用计数除以实际时长,得到真实刷新频率。
这个方法比读 performance.now() 的瞬时差更稳定,
也直接反映用户的卡顿感受。
统计逻辑与 deck.gl 完全解耦,不依赖任何渲染回调。 因此它测的是「浏览器这一秒到底画出了多少帧」, 而不是 deck.gl 声称的渲染耗时。
结果怎么读
精简模式下,帧率通常贴近显示器刷新率;高开销模式会下降, 在集成显卡上降幅更明显。若两套配置帧率一样,说明瓶颈不在 渲染,而在数据准备或 GC,需要往数据侧排查。
开始拾取后,鼠标在画布上滑过时帧率会进一步下降, 这是拾取缓冲在每帧重绘。把鼠标移出画布再看数值, 才能分离出拾取本身的代价。
帧率数字随设备变化,不要当成绝对标准。同一个页面在 不同显卡上可能相差一倍。它真正有用的地方是同机对比: 改一档配置,看数值怎么动。