主要观点:作者认为多年来能取得良好性能工作的原因之一是开始认真对待基准测试并编写自己的库,介绍了自己编写的基准测试 GUI 及其主要解决的问题、主要经验教训、进一步的设计决策和功能,还提供了代码及相关信息。
关键信息:
- 开始用 Google Benchmark 后意识到需要 GUI 来扩展基准测试,介绍了benchmark-gui 的 github 链接及相关视频。
- 主要解决问题:通过重复运行基准测试获取好数据并可视化、处理大量基准测试组合爆炸、解决各种人体工程学问题。
- 主要经验教训:要有 GUI、易于给运行添加标签、将结果记录在 sqlite 文件中,这些能为数据增加结构,解决实验结果混乱和难以自信的问题。
- 进一步设计决策和功能:与 Google Benchmark 有相同接口、指定基线基准测试、在新进程中运行每个基准测试添加噪声、log X 轴线性 Y 轴的可视化方式、Profiler 模式、不刻意处理噪声、尝试过的其他事情(如不同顺序运行基准测试、“Normalize for Memory”功能)。
- 代码及许可证:代码在[https://github.com/skarupke/b...]下,有内存和堆的基准测试示例,使用方式是添加可执行文件并遵循示例,目前没有很好的工作流程。
重要细节: - 介绍了各种基准测试相关的代码结构和实现细节,如随机内存访问的基准测试代码等。
- 说明了不同情况下速度提升的原因及应对方法,如编译运气导致的速度提升等。
- 阐述了对不同可视化方式的选择和理由,如 log/log 图的问题及采用 log-scale on the x-axis 和 Y/X with linear scale on the Y axis 的方式。
- 强调了对基准测试中噪声的处理方式和态度,如展示误差条、显示数据点、默认显示中位数结果等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。