专业的JAVA编程教程与资源

网站首页 > java教程 正文

一个更有说服力的java代码性能测试工具。#程序员

temp10 2024-09-09 08:24:23 java教程 28 ℃ 0 评论

JMH更有说服力的java性能测试。

看一个问题,在java中字符串的拼接有很多种方式,比如使用加号拼接或者使用StringBuilder进行拼接,在不考虑多线程的情况下,那么谁的性能更好呢?测试一下不就好了?没错,一般的写法是这种写法,这样写的准确吗?

一个更有说服力的java代码性能测试工具。#程序员

这里面有以下几个问题:

·第一、时间精度问题,或许时间戳可能会存在误差。

·第二、JVM运行时会进行代码预热,这个意思就是代码越跑越快,第一次执行可能会慢一些。

·第三、JVM会对代码进行优化,有这些因素在可能导致测试结果不是那么准确。这里可以通过JMH进行性能测试。

JMH是java基准性能测试工具,并且它是由JVM的团队开发的,他们是更懂java的,这就很有说服力了。

接下来看一下代码示例:首先引入JMH依赖,我这里是java8,所以需要引入依赖。这里有两个方法,stringuild个是通过加号对字符串进行拼接,有一个通过StringBuilder进行字符串拼接。

首先说一下这个注解,这个注解就叫基准测试,主要用来测试方法的性能。上面这个注解用于选择指定模式,这里统计平均响应时间、输出时间单位。这里选用的是纳秒,在基准测试之前进行一次预热,然后进行五次的基准测试。

接下来运行看一眼效果,控制台打印了他的一些执行信息,比如这里的JDK版本,还有他的一些执行过程。最后他打印了一个测试报告,指定了模式,还有最后的成绩,可以发现stringbull的性能确实要好一些。最后小伙伴在技术选型的时候,可以借助这个工具对同类产品进行性能测试,还是比较有说服力的。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表