5
可能重复:
How do I write a correct micro-benchmark in Java?标杆斯卡拉
比方说,我有两个算法,我该如何找出哪一个具有更高的性能?
我的意思是我可以在数学上证明它,但如果我使用一些库,这可能会变得乏味。我从来没有学过如何在没有数学的情况下做正确的基准。
可能重复:
How do I write a correct micro-benchmark in Java?标杆斯卡拉
比方说,我有两个算法,我该如何找出哪一个具有更高的性能?
我的意思是我可以在数学上证明它,但如果我使用一些库,这可能会变得乏味。我从来没有学过如何在没有数学的情况下做正确的基准。
快速的方法是使用testing.Benchmark
:你只是喜欢写东西
object Bench extends testing.Benchmark {
// initialize your data here
def run() {
// code to benchmark here
}
}
你喜欢的东西
scala Bench 5 1000000
运行
(从你的IDE或直接编辑运行配置),它给你计时5 run()
方法的1000000次重复。您可以比较每个集合的时序并检查它是否一致(由于JVM预热,第一集合通常较慢)。
有关使用Caliper(一种Java微基准标记框架)的更严格方法,请参阅此博客文章:http://www.decodified.com/scala/2011/04/19/microbenchmarking-scala-code。
'testing.Benchmark'现在已经在Scala 2.10中被弃用 –
如果它的文档中提到了它为什么会被弃用或者你应该用它来代替它,那将是非常好的... –