经纬志
首页 / Cesium / 使用示例

规模与帧率测试

数据一多,先看帧率再看效果。示例在两百米尺度上铺六百栋建筑,把性能压力摆在明面上。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

这个示例在做什么

六百栋建筑铺满约两公里的范围,左上角实时显示帧率。旋转、缩放时可以直观看到 实体数量对帧率的影响,也能判断设备承受的规模上限。

压力测试关心三件事:每帧的 CPU 提交量、GPU 绘制批次、以及瓦片调度开销。 实体的瓶颈多在 CPU:每个实体都要计算包围体与矩阵。3D Tiles 则把压力转移到 瓦片调度,用 maximumScreenSpaceError 控制细节层级, 值调大能显著提升帧率。

关键接口

接口作用
tileset.maximumScreenSpaceError容忍的屏幕误差,越大越省性能
tileset.maximumMemoryUsage瓦片内存上限,控制缓存规模
scene.postRender统计帧率与渲染耗时的挂载点
viewer.scene.debugShowFramesPerSecond内置帧率面板,排查时更省事

可以直接改的地方

位置改什么效果
COUNT = 600改成 3000观察帧率掉落
box.outline打开描边绘制批次增加,帧率下降
material换成半透明透明排序带来额外开销
把 postRender 换成 requestAnimationFrame—统计口径变为浏览器帧率

替代说明:官方示例用多份 ion 数据集做规模与帧率的对照测试。 这里生成 600 个实体承载压力,统计方式与调参思路一致; 真实场景改用 tileset 后,主要调 maximumScreenSpaceError。