我已经阅读了许多有关Java JMH的文章。但是,对于完整的Java应用程序性能测试,没有关于Java JHM的详细说明?这是相同的合适工具吗?如果否,请以适当的理由支持。 预先感谢
答案 0 :(得分:3)
JMH适用于各种规模的荷载构建,并具有一些明显的优势:
这是否意味着它是complete java application
工具?不,可以说对于所有应用程序都不存在这样的工具。 JMH非常适合处理基准测试/工作量。对于负载工作负载下的延迟而言,这有点尴尬,但是对于所有吞吐量工作负载而言,这完全没问题。我已经用它来对Cassandra(作为大块服务器应用程序的示例),Netty Web服务器,库或小型代码段进行基准测试。
负载是真实世界吗?对于服务器应用程序,将客户端和服务器嵌入同一个JVM绝对是不现实的,但这并不意味着它没有用,便利性和额外的功能可能值得花点时间。
JMH可以用作过程外应用程序的负载生成线束。嵌入式分析器将无法正常工作,但是比起头来做要好得多。
答案 1 :(得分:-1)
这取决于应用程序类型和所需的性能测试类型,以了解要尝试收集的指标以及需要满足的非功能性要求。 JMH最初代表Java Microbenchmark Harness
,给定micro
这个词,我认为它不能用于任何应用程序的端到端性能测试,它只是一个功能。
性能测试的通用方法假设模拟实际负载,以使您需要将应用程序置于与生产环境相同的条件下,问题是JMH是否提供了实现的可能性这容易与否。
我个人建议从使用JProfiler或YourKit之类的应用程序对应用程序进行配置开始,同时使用load testing tool之类的单独Apache JMeter将应用程序置于负载之下