在scala中进行基准测试

Benchmarking in scala

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I write a correct micro-benchmark in Java?

假设我有两个算法,我如何找出哪一个有更高的性能?

我的意思是我可以用数学证明它,但是如果我使用一些库,这会变得乏味。我从来没有学会如何在没有数学的情况下纠正基准。


快速的方法是使用testing.Benchmark:您只需编写

1
2
3
4
5
6
object Bench extends testing.Benchmark {
  // initialize your data here
  def run() {
    // code to benchmark here
  }
}

它使用类似于scala Bench 5 1000000的方法运行(或者直接从IDE编辑运行配置),它为run()方法的5组1000000次重复提供计时。您可以比较每个集合的计时,并检查它是否一致(第一个集合通常由于JVM预热而变慢)。

对于使用CalpRead,Java微标杆框架的更严格的方法,请参见此博客文章:HTTP://www-DeffiFID.COM/SCAA/2011/04/19/MalimoBosikSCATA代码。