树莓派网站建设,手机怎么跳过国家禁止访问,wordpress短信登录,电商网站多少钱健康警告#xff01; 这篇文章描述了如何设置和运行简单的JMH基准测试。 众所周知#xff0c;微基准测试很难正确设置#xff0c;即使您确实正确设置了#xff08;通过使用JMH之类的工具#xff09;#xff0c;它们仍然会产生误导。 仅仅因为您的代码在极端孤立的人为情况… 健康警告 这篇文章描述了如何设置和运行简单的JMH基准测试。 众所周知微基准测试很难正确设置即使您确实正确设置了通过使用JMH之类的工具它们仍然会产生误导。 仅仅因为您的代码在极端孤立的人为情况下以某种方式运行并不意味着它将在您的生产代码内以相同的方式运行。 仅举几个例子在实际程序中CPU缓存将受到代码其他部分的压力任何对象的创建都会对GC产生下游影响而JIT可能从您的其他部分内联并编译了代码与您基准测试的代码冲突的代码。 不过微型基准确实有其地位如果您打算使用微型基准那么最好还是与JMH一起正确地执行。 在最近的一篇文章中我被要求执行我的测试作为JMH性能基准。 JMH是用于构建运行和分析以Java和其他针对JVM的其他语言编写的nano / micro / milli / macro基准测试的Java工具。 在此处查看完整文档。 JMH之所以如此出色是因为它负责预热迭代分派JVM进程以使基准不会互相干扰整理结果并以统一的方式呈现。 还有更多。 我听过很多有关JMH的信息看到过许多JMH的结果但我自己却从未真正运行过。 太简单了 这就是我做的。 将这些依赖项添加到您的Maven pom.xml文件中 dependencygroupIdorg.openjdk.jmh/groupIdartifactIdjmh-core/artifactIdversion1.5.1/version/dependencydependencygroupIdorg.openjdk.jmh/groupIdartifactIdjmh-generator-annprocess/artifactIdversion1.5.1/version
/dependency 然后确定要进行基准测试的方法并向其添加注释Benchmark。 如果您需要任何初始化代码请将其添加到应标记为Setup的方法中。 运行基准测试的最简单方法是通过将该实现添加到您的main方法中来进行添加。 有关运行测试的其他方法请参见此处 。 public static void main(String[] args) throws RunnerException {Options opt new OptionsBuilder().include(MyBenchmark.class.getSimpleName()).forks(1).build();new Runner(opt).run();
} 然后像运行任何普通程序一样运行您将获得所有JMH的好处 作为查看JMH基准格式的示例我的结果如下所示 Benchmark Mode Cnt Score Error Units
CompTestBenchmark.bmCustomComparator thrpt 20 2598.617 ± 67.634 ops/s
CompTestBenchmark.bmJDKComparator thrpt 20 751.110 ± 14.835 ops/s
CompTestBenchmark.bmNoVTLComparator thrpt 20 1348.750 ± 30.382 ops/s
CompTestBenchmark.bmNoVTLOrAutoBoxingComparator thrpt 20 2202.995 ± 43.673 ops/s 有大量的花哨的技巧可以微调您的基准我不会在这里讨论但希望这能使您正常运行。 有关我的测试的完整代码列表请参见此处 。 翻译自: https://www.javacodegeeks.com/2015/02/jmh-setup-run-jmh-benchmark.html