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中被棄用 –
如果它的文檔中提到了它爲什麼會被棄用或者你應該用它來代替它,那將是非常好的... –