Language agnostic 如何制定真实、安全的基准?

Language agnostic 如何制定真实、安全的基准?,language-agnostic,benchmarking,Language Agnostic,Benchmarking,根据研究,在同一台机器上运行的基准测试结果差异很大 我不是问如何使用microtime或任何框架,而是问你如何确保你的基准没有任何偏差?任何机器设置、软件设置、过程设置?有没有办法确保您的基准可以安全地用作参考?基本上基准测试有点像一项科学研究,所以同样的规则也适用。基准测试通常是为了回答某种类型的问题,所以从制定一个好的问题开始。在那之后,是实践和经验来消除所有错误的偏见 确保您了解并详细记录运行时环境(例如,关闭电源管理和其他可能干扰测量的后台任务)。 确保重复实验(基准测试运行)的次数足够

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


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

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

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

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