ベンチマークパラメータをコマンドライン引数で修正するには、-Dname=value
を使用します。 benchmark
という特別なパラメータが1つあります。その値はtime
メソッドの接尾辞です。パラメータを複数の値に制限する場合は、次のようにコンマで区切ります。-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
ありがとうございました。 – Javafanboy
com.google.caliper.Runnerは1.0beta1には存在しなくなりました。あなた自身のmainを実装する必要があります: 'public static void main(String [] args){CaliperMain.main(MyBenchmark.class、args); } '注意:ベータ1はWindows *では動作しません。 – eckes