主要观点:编写好的基准测试很难,容易自我欺骗,如测量错误、得到想要结果就停止、未清理测试状态、不理解 JavaScript 引擎工作原理等。多年来一直使用 Tachometer 进行大部分浏览器基准测试,它能自动化一些棘手部分,如以交错方式运行迭代直到达到统计显著性、在每次迭代间启动新浏览器配置文件等,有环境特定方差消除、无需猜测迭代次数、浏览器每次迭代新等优点,但也有 A 和 B 差异小时工具运行时间长、不测量 JIT 时间、可能需自行进行内部迭代等缺点,且缺乏性能变化的可视化,通常用于一次性基准测试,也可生成配置文件,只用于浏览器或 JavaScript 测试,对于低级别 JavaScript 微基准测试是常用工具。
关键信息:
- 编写基准测试易犯错,如测量错误等。
- Tachometer 能自动化部分工作,如交错运行迭代等。
- Tachometer 优点包括消除环境方差等。
- Tachometer 缺点如差异小时运行时间长等。
- 通常用于一次性基准测试,可生成配置文件。
- 只用于浏览器或 JavaScript 测试,可找更好工具替代。
重要细节: - 示例中通过加载不同页面进行场景测试,需有测量内容如性能测量。
- Tachometer 工具在 CI 环境中的局限性,如 99%PR 不影响性能时不适用。
- 有相关 GitHub 动作可报告 PR 和主分支差异,但可能不用于每次 PR。
- Tachometer 能发现回归问题,用于验证或驳斥性能优化。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。