以毫秒为单位进行基准测试
摘要
一篇风格类似 Matthias Endler(matklad)的博客文章,主张微基准测试应调整到运行约 300 毫秒——足够快以便快速迭代,又足够慢以避免启动开销并让人对速度有直观感受——其目标是让基准测试提供决策直觉,而非精确测量。
<header>
<h1>以毫秒为单位进行基准测试</h1>
<time class="meta" datetime="2026-10-05">2026年10月5日</time>
</header>
<p>一个微基准测试应该运行多久?我的经验法则是调整输入规模,直到基准测试耗时约 300 毫秒,原因如下:</p>
<ul>
<li>
毫秒是取值范围从 1 到 999 的整数。精度足够发现哪怕微小的提升,且便于肉眼扫描。无需使用不同单位或浮点数(对比一下 <code>1.31s</code> 与 <code>239ms</code>)。
</li>
<li>
任何比方说 <code>10ms</code> 还快的测试,都有被固定成本(例如解释器启动)扭曲的风险。对计算机而言几百毫秒就是永恒,通常足以让一次性开销变得无关紧要,而无需采用更花哨(=更不稳健)的技术来显式处理它们。
</li>
<li>
对人来说,几百毫秒既快,又能被感知。把数值推到人类可感知的范围内,使我能够运用自己对时间和速度的直观感受,而不必完全依赖数字感。看着一个之前卡顿的 CLI 命令经过优化变成“瞬时”响应,实在是一种纯粹的乐趣。
</li>
<li>
但超过一秒的测试会让基准测试的<em>迭代</em>变得不必要地缓慢。连续运行 10 次基准测试以观察波动,应该很快才对!</li>
</ul>
<p>这里即将明确提出的假设是:基准测试的目的与其说是对性能的精确测量,不如说是为作者提供足够的直觉,以做出正确的决策。</p>
查看缓存全文
缓存时间: 2026/10/06 03:03
# 以毫秒为单位进行基准测试
来源:https://matklad.github.io/2026/10/05/benchmark-milliseconds.html
2026年10月5日
一个微基准测试应该运行多久?我的经验法则是:调整输入大小,直到基准测试大约耗时 300ms 为止,理由如下:
- 毫秒是 1 到 999 之间的整数。精度足够高,连微小的改进都能看出来,而且方便肉眼扫读。不需要换用不同的单位或浮点数(比如对比 `1.31s` 和 `239ms`)。
- 任何比比如说 `10ms` 更快的东西,都有被固定开销(例如解释器启动)扭曲的风险。几百毫秒对计算机来说就是永恒,通常足以让一次性开销变得无关紧要,而无需使用更花哨(=更不健壮)的技巧来显式地扣除它们。
- 对人类而言,几百毫秒很快,但依然可感。把数字推进到人类可感知的范围内,让我能利用自己对时间和速度的直觉,而不是完全依赖数字计算能力。看着某个原本卡顿的 CLI 命令因为优化工作而变得“瞬间完成”,本身就是一种纯粹的乐趣。
- 但超过一秒就太慢了,*迭代*基准测试的速度会被拖累。连续运行 10 次基准测试来肉眼观察方差,应该很快才对!
这里即将明确写出的假设是:基准测试的目的与其说是精确测量性能,不如说是为作者提供足够的直觉,以便做出正确的决策。
相似文章
为基准测试优化服务器
本文提供了逐步指南,介绍如何优化服务器以进行基准测试,旨在减少运行间噪音并确保测量可重复性,涉及硬件检查和核心固定等技术。
(吐槽;)) 让你的基准测试更贴近现实
社区吐槽:呼吁AI模型基准测试应更贴近现实,考虑上下文大小、多模态特性、具体硬件配置和并行处理,而不仅仅是原始速度。
@ms_aifrontiers: 在每个检查点上运行所有基准测试既慢又昂贵。微软AI前沿团队的新工作提出了一个问题:你是否……
微软AI前沿团队推出了BenchPress,一种无需运行实际基准测试即可预测基准分数的方法,节省时间和计算资源。
200毫秒
讨论200毫秒作为响应时间的关键阈值,强调其在技术系统中感知性能和用户体验中的作用。
来自ModelBrew的实时持续学习基准测试 [N]
ModelBrew发布了用于实时持续学习的基准测试,标准化了该领域的评估。