经纬志
首页 / deck.gl / 使用示例

性能对比

二十六万个点,两套渲染配置。切换后观察右上角帧率, 能直观看到描边、抗锯齿、拾取与多层叠加各自带来的代价。

deck.gl 9.0 · 更新 2026-10-27
源码与运行效果
运行效果

说明

点数据围绕六座城市聚集,生成一次后反复使用。两种模式共用 同一份数组引用,切换时不会重新上传顶点,帧率差异只来自 渲染配置本身。

模式配置额外负载
精简1 个图层、半径 1.6 像素、无描边、不拾取顶点绘制
高开销主图层描边 + 抗锯齿 + 拾取,另加两层半透明光晕三倍几何 + 拾取缓冲 + 填充叠加

帧率是怎么统计的

requestAnimationFrame 每触发一次计数加一, 每 600 毫秒用计数除以实际时长,得到真实刷新频率。 这个方法比读 performance.now() 的瞬时差更稳定, 也直接反映用户的卡顿感受。

统计逻辑与 deck.gl 完全解耦,不依赖任何渲染回调。 因此它测的是「浏览器这一秒到底画出了多少帧」, 而不是 deck.gl 声称的渲染耗时。

结果怎么读

精简模式下,帧率通常贴近显示器刷新率;高开销模式会下降, 在集成显卡上降幅更明显。若两套配置帧率一样,说明瓶颈不在 渲染,而在数据准备或 GC,需要往数据侧排查。

开始拾取后,鼠标在画布上滑过时帧率会进一步下降, 这是拾取缓冲在每帧重绘。把鼠标移出画布再看数值, 才能分离出拾取本身的代价。

帧率数字随设备变化,不要当成绝对标准。同一个页面在 不同显卡上可能相差一倍。它真正有用的地方是同机对比: 改一档配置,看数值怎么动。