0

我正在尝试@Param在具有以下形式的命令行参数的字段上使用注释:“-Dmyparamname=val1,val2,val3”,但它不起作用。我正在使用 caliper-0.5-rc1.jar。我的实际用法如下:

java -classpath "mylongclasspath" MyBenchmarkClass -Jjit=-client,-server -Dprovider=CGLIB,JAVASSIST,JAVAPROXY

我的基准课程有以下内容:

public class MyBenchmarkClass extends SimpleBenchmark {
    @Param
    private String provider;

    ...
}

但是当我运行时,我只能获得 jit 的选项,而不是 -Dprovider:

 0% Scenario{vm=java, trial=0, benchmark=M1, jit=-server} 30.40 ns; ?=0.13 ns @ 3 trials
 17% Scenario{vm=java, trial=0, benchmark=M2, jit=-server} 31.42 ns; ?=0.08 ns @ 3

等等,最终用“jit=-client”重复所有的基准测试

我本来希望看到:

 0% Scenario{vm=java, trial=0, benchmark=M1, jit=-server provider=CGLIB} ...etc. 

我尝试了各种选项:包括命令 arg 中值的引号,在内部将它们作为 List 类型的静态字段提供等。从来没有任何迹象表明它正在尝试迭代提供的“提供者”值。

关于我做错了什么有什么想法吗?

4

1 回答 1

0

看起来 0.5-rc1 构建(Maven Central 中唯一的东西)是问题所在。我从另一个项目中刷了一个初步的 1.0 构建(我不想下载整个项目和 Maven 并构建它)。

于 2012-04-15T04:42:50.620 回答