我正在尝试对现实算法的两种不同实现方式进行典型的“A/B 测试”之类的方法,在两种情况下都使用相同的数据集。该算法在执行方面是确定性的,所以我真的希望结果是可重复的。
在Core 2 Duo上,也是如此。仅使用 linux“time”命令,我将获得大约 0.1% 的执行时间变化(超过 10 次运行)。
在 i7 上,我会得到各种变化,我可以很容易地在平均值上下 30% 的变化。我假设这是由于 i7 所做的各种 CPU 优化(动态超频等),但它确实很难进行这种测试。有没有其他方法可以确定 2 种算法中哪一种是“最佳”,我可以使用任何其他合理的指标?
编辑:该算法不会维持很长时间,这实际上是我试图进行基准测试的真实场景。因此,反复运行并不是真正的选择。
最佳答案
查看是否可以在 BIOS 中关闭动态超频。此外,在进行基准测试时,放弃所有可能运行的其他进程。
关于java - 如何测量 i7 上的 java 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880598/