3

Google のマイクロ ベンチマーク プロジェクト Caliper は非常に興味深いと思いますが、ドキュメントはまだ (一部の例を除いて) まったく存在しません。

JVM キャリパーの起動のコマンド ラインに影響を与える必要がある 2 つの異なるケースがあります。

  1. いくつかの固定値を設定する必要があります (理想的にはいくつかの固定値を交互に使用します) -D パラメータ
  2. いくつかの固定された (理想的にはいくつかの固定値を交互に使用する) JVM パラメーターを指定する必要があります。

このような機能を追加することについての議論を見ましたが、それが追加されたかどうか、またその場合の構文はどうなったかについて結論を出すことができませんでした。

Java doc へのいくつかの例またはポインタ (これがどこかに文書化されていると仮定して) などは非常に高く評価されます!

4

1 に答える 1

6

コマンド ライン引数を使用してベンチマーク パラメータを修正するには、 を使用します-Dname=value。という名前の特別なパラメーターが 1 つありますbenchmarktimeその値はメソッドのサフィックスです。パラメータを複数の値に制限したい場合は、次のようにコンマで区切ります-Dname=value1,value2

JVM パラメータを設定するには、 を使用します-Jname=flag1,flag2

たとえば、次のベンチマークを検討してください。

public class StringBuilderBenchmark extends SimpleBenchmark {

    @Param({"1", "10", "100"}) private int length;

    public void timeAppendBoolean(int reps) {
        for (int i = 0; i < reps; ++i) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < length; ++j) {
                sb.append(true);
            }
        }
    }

    public void timeAppendChar(int reps) {
        for (int i = 0; i < reps; ++i) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < length; ++j) {
                sb.append('c');
            }
        }
    }
}

長さ 5 と 6、大小のヒープでこのベンチマークを実行するには、次のパラメーターを使用します。

java -cp caliper-0.0.jar:build/classes/test \
    com.google.caliper.Runner examples.StringBuilderBenchmark \
    -Dlength=5,6 -Dbenchmark=AppendBoolean -Jmemory=-Xmx512M,-Xmx16M

これにより、次の結果が得られます。

 0% Scenario{vm=java, trial=0, benchmark=AppendBoolean, length=5, memory=-Xmx512M} 81.79 ns; σ=0.31 ns @ 3 trials
25% Scenario{vm=java, trial=0, benchmark=AppendBoolean, length=6, memory=-Xmx512M} 89.72 ns; σ=2.19 ns @ 10 trials
50% Scenario{vm=java, trial=0, benchmark=AppendBoolean, length=5, memory=-Xmx16M} 111.44 ns; σ=6.01 ns @ 10 trials
75% Scenario{vm=java, trial=0, benchmark=AppendBoolean, length=6, memory=-Xmx16M} 120.23 ns; σ=4.59 ns @ 10 trials

  memory length    ns logarithmic runtime
-Xmx512M      5  81.8 =
-Xmx512M      6  89.7 =======
 -Xmx16M      5 111.4 ========================
 -Xmx16M      6 120.2 =============================

vm: java
trial: 0
benchmark: AppendBoolean
于 2011-01-29T23:41:34.917 に答える