你如何制作真实,安全的基准?

时间:2013-10-05 09:00:18

标签: language-agnostic benchmarking

根据this question,在同一台机器上运行的基准测试结果差异很大。

我不是在询问如何使用microtime或任何框架,而是如何确保您的基准测试没有任何偏见?任何机器设置,软件设置,过程设置?有没有办法确保您的基准可以安全地用作参考?

1 个答案:

答案 0 :(得分:0)

基本上,基准测试有点像科学研究,因此适用相同的规则。通常会做一个基准来回答某种问题,所以从制定一个好问题开始。在此之后,消除所有错误的偏见是实践和经验。

确保您详细了解并记录运行时环境(例如,关闭电源管理和可能干扰测量的其他后台任务)。 确保经常重复实验(基准运行)以获得良好且稳定的平均值并记录它。 确保您知道自己在测量什么(例如,如果要测量内存性能等,请使用比所有缓存更大的工作集,或者使用与内核一样多的线程等等。)

在某些情况下,这涉及填充缓存并缓存数据集,在其他情况下,您需要执行完全相反的操作。取决于您想要用基准测试回答的问题。