2 回答

TA贡献2011条经验 获得超2个赞
JMH 适用于构建各种规模的负载,并提供一些相当大的优势:
轻松同行评审
许多报告输出
避免了许多 JVM 基准测试陷阱
嵌入式分析功能
和更多!
这是否意味着它是一个complete java application
工具?不,并且可以说不存在适用于所有应用程序的此类工具。JMH 非常适合流程中的基准测试/工作负载。对于负载工作负载下的延迟来说有点尴尬,但对于所有吞吐量工作负载来说完全没问题。我用它来对 Cassandra(作为一个矮胖的服务器应用程序的一个例子)、一个 Netty Web 服务器、库或小代码片段进行基准测试。负载是真实世界吗?对于服务器应用程序,将客户端和服务器嵌入到同一个 JVM 中绝对是不现实的,但这并不意味着它没有用,而且便利和额外的功能可能使它值得。
通过一些努力,JMH 可以用作进程外应用程序的负载生成工具。嵌入式分析器不起作用,但比从头开始要好得多。

TA贡献1796条经验 获得超4个赞
这取决于应用程序类型和您正在寻找的性能测试类型、您尝试收集哪些指标以及您需要涵盖哪些非功能性需求。最初 JMH 代表Java Microbenchmark Harness
和给定的micro
词,我认为它不能用于任何应用程序的端到端性能测试,而是关于单个功能。
性能测试的常用方法假设模拟实际负载,也就是说您需要将应用程序置于与生产中使用相同的条件下,问题是 JMH 是否提供了轻松实现这一点的可能性。
我个人建议从使用JProfiler或YourKit 之类的东西开始分析您的应用程序,同时使用单独的负载测试工具(如Apache JMeter)将您的应用程序置于负载之下
添加回答
举报