Java JMH工具,用于完成应用程序性能测试

时间:2018-09-17 19:03:53

标签: java performance-testing jmh

我已经阅读了许多有关Java JMH的文章。但是,对于完整的Java应用程序性能测试,没有关于Java JHM的详细说明?这是相同的合适工具吗?如果否,请以适当的理由支持。 预先感谢

2 个答案:

答案 0 :(得分:3)

JMH适用于各种规模的荷载构建,并具有一些明显的优势:

  • 易于同行评审
  • 许多报告输出
  • 避免许多JVM基准测试陷阱
  • 嵌入式分析功能
  • 还有更多!

这是否意味着它是complete java application工具?不,可以说对于所有应用程序都不存在这样的工具。 JMH非常适合处理基准测试/工作量。对于负载工作负载下的延迟而言,这有点尴尬,但是对于所有吞吐量工作负载而言,这完全没问题。我已经用它来对Cassandra(作为大块服务器应用程序的示例),Netty Web服务器,库或小型代码段进行基准测试。 负载是真实世界吗?对于服务器应用程序,将客户端和服务器嵌入同一个JVM绝对是不现实的,但这并不意味着它没有用,便利性和额外的功能可能值得花点时间。

JMH可以用作过程外应用程序的负载生成线束。嵌入式分析器将无法正常工作,但是比起头来做要好得多。

答案 1 :(得分:-1)

这取决于应用程序类型和所需的性能测试类型,以了解要尝试收集的指标以及需要满足的非功能性要求。 JMH最初代表Java Microbenchmark Harness,给定micro这个词,我认为它不能用于任何应用程序的端到端性能测试,它只是一个功能。

性能测试的通用方法假设模拟实际负载,以使您需要将应用程序置于与生产环境相同的条件下,问题是JMH是否提供了实现的可能性这容易与否。

我个人建议从使用JProfilerYourKit之类的应用程序对应用程序进行配置开始,同时使用load testing tool之类的单独Apache JMeter将应用程序置于负载之下