可能性の重複:
How do I write a correct micro-benchmark in Java?ベンチマークScalaでは
私はより高い性能を持っている1アウト見つけるのですか、のは、私は2つのアルゴリズムを持っているとしましょうか?
私はそれを数学的に証明することができますが、私はいくつかのライブラリを使用すると面倒なことがあります。数学を使わないで正しいベンチマークをどうやって学ぶことは決してありませんでした。
可能性の重複:
How do I write a correct micro-benchmark in Java?ベンチマークScalaでは
私はより高い性能を持っている1アウト見つけるのですか、のは、私は2つのアルゴリズムを持っているとしましょうか?
私はそれを数学的に証明することができますが、私はいくつかのライブラリを使用すると面倒なことがあります。数学を使わないで正しいベンチマークをどうやって学ぶことは決してありませんでした。
簡単な方法は、testing.Benchmark
を使用することです:あなたはわずか5のためにあなたのタイミングを与え、(実行構成を編集し、あなたのIDEから直接または)あなたがscala Bench 5 1000000
のようなものを使用して実行
object Bench extends testing.Benchmark {
// initialize your data here
def run() {
// code to benchmark here
}
}
ような何かを書きますrun()
メソッドの1000000回の繰り返しのセット。各セットのタイミングを比較して、それが一貫していることを確認できます(最初のセットは通常、JVMのウォーミングアップのために遅くなります)。
JavaマイクロベンチマーキングフレームワークのCaliperを使用したより厳密なアプローチについては、このブログの記事http://www.decodified.com/scala/2011/04/19/microbenchmarking-scala-codeを参照してください。
'testing.Benchmark'はScala 2.10で廃止されました。 –
そのドキュメントがなぜ非難されたのか、代わりに使用するはずのことが書かれていれば素晴らしいでしょう... –