benchmark with java
分析一段代码的不同实现方式的优劣,或者一个操作的改进程度,可以实现一个micro-benchmark来进行评测。常用的benchmark tool for java就是 google的Caliper 和 open jdk的JMH。
JMH 使用
使用annotation中的:@Benchmark @setup 等内容来表示程序
运行方法1:
直接在类中添加Main函数:
Options options = new OptionsBuilder().
include(MyBenchmark.class.getSimpleName()).forks(1).build();
new Runner(options).run();
运行方式2:
在mvn pom中添加plugin,以及运行的主类(Main)
<mainClass>org.openjdk.jmh.Main</mainClass>
讨论
性能测试或者调优:
过早的性能调优是万恶之源:
-
我们一般使用基准测试来进行性能调优,但是基准测试是要在性能测试之后才展开
-
性能测试以后,我们要发现对哪一个部分改进性能能提高更多,然后对这部分进行优化
网友评论