制作一个小的可重复基准
选择一个场景并编写一条通过该场景的路线:例如,重新启动关卡,穿过固定的障碍物序列,然后触发拥挤的效果区域。保持浏览器、窗口大小、资产状态和场景内容一致。记录动画回调之间的时间间隔以及更新和渲染函数所花费的时间,同时使用浏览器开发人员工具检查长任务和渲染活动。
比较分布或重复样本而不是单个最佳帧。请注意问题是否发生在初始加载、稳定播放或过渡期间。简短的诊断覆盖可以在您玩游戏时显示最近的帧间隔,但在比较期间删除或禁用大量日志记录,因为测量代码本身会增加工作量。
使用浏览器计时作为证据,而不是判决
Performance.now() 为本地测量提供高分辨率时间戳,PerformanceObserver 可以报告支持的性能条目。在依赖可选条目类型之前检查 supportedEntryTypes;例如,长任务报告并非在每个浏览器中都可用。检测到的长任务指向主线程阻塞,但它没有解释哪一行代码或产品行为导致了它。
更改后,如果可能,请在多个代表性设备上重复相同的场景,然后手动验证控制响应和视觉稳定性。记录简明的结果,例如场景、浏览器、样本计数和症状变化。避免发布来自一台机器的普遍适用的帧速率说法;性能取决于硬件、浏览器、显示和竞争工作。
关于衡量浏览器游戏性能的常见问题
平均FPS足以评价一款游戏吗?
不会。平均值可以掩盖玩家注意到的偶尔的停顿。检查帧时间变化并将其与特定的交互或输入延迟症状配对。
PerformanceObserver 可以识别每一个减速情况吗?
不。它报告支持的性能条目,而不是渲染成本的完整解释。将其与浏览器分析器和可重现的游戏场景一起使用。
延伸阅读
发现信息过时了? 报告需要更正的内容