我有几个用@Benchmark注释的大型基准类。在使用基准构建jar后,我可以使用以下命令运行所有这些类
java -Xmx4G -jar benchmarks.jar -f 1 -wi 3 -i 10
如果我不想运行所有基准测试,如何指定要运行的基准测试?
展开Aleksey的答案,在测试类名上使用正则表达式过滤器。
java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "JwtParseBenchmark"
java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "JwtClaimBenchmark"
和/或使用例如
java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "Jwt.*Benchmark"
这是确切的命令:
java -Xmx4G -jar benchmarks.jar YourClass -f 1 -wi 3 -i 10
有疑问时,请寻求命令行帮助。事实上,使用-h
运行JAR会产生:
Usage: java -jar ... [regexp*] [options]
[opt] means optional argument.
<opt> means required argument.
"+" means comma-separated list of values.
"time" arguments accept time suffixes, like "100ms".
[arguments] Benchmarks to run (regexp+).
因此,提供一个正则表达式作为过滤器会有所帮助。
我正在使用向服务器发送REST请求的自定义Java库为HTTP服务器编写性能测试。在开始时,我正在执行数据准备阶段,以便获得一个要向服务器发送请求的对象列表。 现在,问题是,我可以使用注释测试可以注入基准函数的参数列表: 问题是,我希望通过Java参数列表实现同样的效果,并避免对它们进行迭代。你能告诉我怎么做吗?
问题内容: 我想通过在Eclipse中将其作为Java应用程序运行来尝试JMH的新功能。我导入并构建了jmh-samples项目。编译的类以/ jmh-samples / target / generated-sources / annotation结尾,/ target /中有多个JAR,并且像往常一样从命令行运行microbenchmarks.jar。 但是,当我执行main时,我总是得到 有
我想通过在eclipse中运行JMH作为Java应用程序来尝试JMH的新特性。我导入并构建了jmh样本项目。编译的类以 /jmh-samples/target/generated-sources/annotations结束, /target/中有几个JAR,并像往常一样从命令行运行microbenchmarks.jar。 然而,当我执行main时,我总是得到 有什么想法吗?我使用的是 0.3 版
我通过JMH进行了一些基准测试 假设我在一个Java文件中列出了三个基准测试 每种方法都对服务于相同目的的不同算法进行基准测试。当我一起运行所有基准测试时,与逐个运行基准测试相比,结果会有所不同。 例如,在Java文件上仅使用onw基准执行JMH运行。 如果只运行此方法,此方法的结果会更好,但是如果使用更多基准,结果会更差。 假设基于结果的基准测试 我还尝试改变基准的顺序(按字典顺序执行),结果是
在我的场景中,基准测试中的方法应该在一个线程中按顺序运行并按顺序修改状态。 例如,有一个
我使用JMH对DOM解析器进行基准测试。我得到了非常奇怪的结果,因为第一次迭代实际上比后面的迭代运行得更快 有人能解释为什么会这样吗?此外,百分位数和所有数字意味着什么?为什么在第三次迭代后它开始变得稳定?一次迭代是否意味着整个基准测试方法的一次迭代?下面是我正在运行的方法