JMH工具进行基准测试简单使用
来源:互联网 发布:pcb电路板软件 编辑:程序博客网 时间:2024/05/29 17:02
参考资料:
http://www.importnew.com/12548.html
http://blog.csdn.net/hfmbook/article/details/70209150
依赖库:
<dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>1.9.3</version> <scope>provided</scope> </dependency>
Main方法:
import com.nxg.JmhDemo;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.options.Options;import org.openjdk.jmh.runner.options.OptionsBuilder;public class MyPro { public static void main(String [] args) throws Exception{ Options opt = new OptionsBuilder() .include(JmhDemo.class.getSimpleName()) .forks(1) .warmupIterations(5) //预热次数 .measurementIterations(5) //真正执行次数 .build(); new Runner(opt).run(); }}
测试类:
package com.nxg;import org.openjdk.jmh.annotations.Benchmark;import org.openjdk.jmh.annotations.BenchmarkMode;import org.openjdk.jmh.annotations.Mode;import org.openjdk.jmh.annotations.OutputTimeUnit;import java.util.concurrent.TimeUnit;public class JmhDemo { @Benchmark @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) public void stringLoop(){ String str = new String(); for(int i = 0; i<100; i++){ str += "str\t"; str += "str\t"; str += "str\t"; str += "str\t"; str += "str\t"; } } @Benchmark @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) public void builderLoop(){ StringBuilder builder = new StringBuilder(); for(int i = 0; i<100; i++){ builder.append("str\t"); builder.append("str\t"); builder.append("str\t"); builder.append("str\t"); builder.append("str\t"); } } @Benchmark @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) public void bufferLoop(){ StringBuffer buffer = new StringBuffer(); for(int i = 0; i < 100; i++){ buffer.append("str\t"); buffer.append("str\t"); buffer.append("str\t"); buffer.append("str\t"); buffer.append("str\t"); } }}
总结:基本上我们的代码都可以这么测试一下,尤其是需要对一些库进行选择的时候,非常好用。
阅读全文
0 0
- JMH工具进行基准测试简单使用
- Java基准测试 JMH
- Java 性能测试工具 JMH
- 使用dispatch_benchmark函数进行基准测试
- 如何使用HammerDB进行MySQL基准测试
- Hadoop的基准测试工具使用
- 基准测试工具sysbench安装和使用
- 基准测试工具
- Oracle 基准测试工具
- MySQL基准测试工具
- 虚拟机基准测试工具
- MYSQL基准测试工具
- Hadoop基准测试工具
- mysql基准测试工具
- 使用sysbench进行cpu/IO/内存/OLTP等基准测试
- 使用sysbench进行cpu/IO/内存/OLTP等基准测试
- NodeJS中使用benchmark进行基准测试-@alsotang
- 使用benchmark.js进行前端代码基准测试
- JAVA的包装类
- 计算机中丢失OPENGL.dll
- Scheduling R Tasks via Windows Task Scheduler
- 将jetty嵌入到应用中的简单案例
- ios-应用程序内的国际化
- JMH工具进行基准测试简单使用
- local variable 'msgMaxlen' referenced before assignment
- 暴力求解法_隐式图搜索(埃及分数,倒水问题,八数码问题)
- java八大基本类型取数范围
- leetcode--Binary Tree Inorder Traversal
- 如何解决 mysql Data truncated for column 的错误
- 递归与迭代 的区别
- springboot-cloud-2-ribbon
- 前端RSA加密及压缩base64