私はjmh(http://openjdk.java.net/projects/code-tools/jmh/)を使っていくつかの方法をベンチマークしました。また、私はこのメソッドを実行するための引数として使用するパラメータのセットを持っています。 (@GenerateMicroBenchmarkアノテーションを使用して)各特定のパラメータ値のメソッドを生成することは可能ですか?jmhベンチマークでメソッドを生成するには?
今、私は同様の実装を使用しますが、私は手で均一に多くのコードを記述する必要がありのため、それは、それほど便利ではありません。
interface State {
int action();
void prepare();
}
class Method {
...;
toString() { return "State1_" + param; }
}
{
Method[] states;
curState = -1;
count = 0;
int[] params = {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000};
for (int param: params) {
states[count++] = new Method(param);
}
}
@Setup(Level.Invocation)
public void prepareState() {
if (curState != -1) {
states[curState].prepare();
}
}
@GenerateMicroBenchmark
public int param_1000() {
curState = 0;
return states[curState].action();
}
@GenerateMicroBenchmark
public int param_2000() {
curState = 1;
return states[curState].action();
}
@GenerateMicroBenchmark
public int param_3000() {
curState = 2;
return states[curState].action();
}
...
@GenerateMicroBenchmark
public int param_12000() {
curState = 11;
return states[curState].action();
}