在scala中进行基准测试

可能重复:
我如何在Java中编写正确的微基准测试?

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

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


快速的方法是使用testing.Benchmark :你只是写一些类似的东西

object Bench extends testing.Benchmark {
  // initialize your data here
  def run() {
    // code to benchmark here
  }
}

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

有关使用Caliper(Java微型基准框架)的更严格方法,请参阅此博客文章:http://www.decodified.com/scala/2011/04/19/microbenchmarking-scala-code。

链接地址: http://www.djcxy.com/p/86543.html

上一篇: Benchmarking in scala

下一篇: Best approach for dealing with time measures?