JMH记要_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JMH记要

JMH记要

 2020/1/22 12:11:51  tvmovie  程序员俱乐部  我要评论(0)
  • 摘要:1.What'sJMH?——OpenJDK提供的微基准测试工具官网:http://openjdk.java.net/projects/code-tools/jmh/maven:http://central.maven.org/maven2/org/openjdk/jmh/2.使用过程中遇到的问题及解决疑惑:网上的文章里很多都说JMH是jdk1.9自带的,但我并未在jdk9中发现带有JMH,甚至jdk13中也未见其踪1)环境:Eclipse(eclipse-jee-2019-12-R-win32
  • 标签:

class="xml">1.What's JMH?——OpenJDK提供的微基准测试工具

官网: http://openjdk.java.net/projects/code-tools/jmh/

maven:? http://central.maven.org/maven2/org/openjdk/jmh/

?

2.使用过程中遇到的问题及解决

疑惑:网上的文章里很多都说JMH是jdk1.9自带的,但我并未在jdk9中发现带有JMH,甚至jdk13中也未见其踪

1)环境:Eclipse (eclipse-jee-2019-12-R-win32-x86_64版本)+ jdk-9.0.4

简单maven工程:

	<properties>
		<jmh.version>1.9.3</jmh.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.openjdk.jmh</groupId>
			<artifactId>jmh-core</artifactId>
			<version>${jmh.version}</version>
		</dependency>

		<dependency>
			<groupId>org.openjdk.jmh</groupId>
			<artifactId>jmh-generator-annprocess</artifactId>
			<version>${jmh.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.openjdk.jmh</groupId>
			<artifactId>jmh-samples</artifactId>
			<version>${jmh.version}</version>
		</dependency>
	</dependencies>

?

然后运行jmh-samples jar包中的例子:org.openjdk.jmh.samples.JMHSample_01_HelloWorld

出现异常

  1. Exception?in?thread?"main"?java.lang.RuntimeException:?ERROR:?Unable?to?find?the?resource:?/META-INF/BenchmarkList??

解决:安装m2e-apt插件(感谢:https://www.iteye.com/blog/szhnet-2323117)

?

2) 接着运行源码目录下的代码,出现异常:

?Exception in thread "main" No benchmarks to run; check the include/exclude regexps.
?at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:256)
?at org.openjdk.jmh.runner.Runner.run(Runner.java:203)

?解决:安装m2e-apt后,需配置:(再次感谢:https://www.iteye.com/blog/szhnet-2323117? ,文章中已经说了,怪自己太不仔细)

?

勾选后再次运行测试程序,发现会在 target 目录下生成 generated-sources 和 generated-test-sources 目录,其中generated-sources 下会生成一些java类,比如CollectionsBenchmarkTest_jmh.java、CollectionsBenchmarkTest_jmh_B1.java、CollectionsBenchmarkTest_jmh_B2.java、CollectionsBenchmarkTest_jmh_B3.java等,这些类中用到了 javax.annotation.Generated 注解于是添加依赖:

		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.2</version>
		</dependency>

?

再次运行测试案例,成功!

?

?

?

?

?

上一篇: Java小项目之:投票系统 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名