【发布时间】:2018-09-17 19:03:53
【问题描述】:
我已经阅读了很多关于 java JMH 的文章。但是没有任何关于 java JHM 用于完整的 java 应用程序性能测试的说明?这是否适合相同的工具。如果否,请以适当的理由支持。 在此先感谢
【问题讨论】:
标签: java performance-testing jmh
我已经阅读了很多关于 java JMH 的文章。但是没有任何关于 java JHM 用于完整的 java 应用程序性能测试的说明?这是否适合相同的工具。如果否,请以适当的理由支持。 在此先感谢
【问题讨论】:
标签: java performance-testing jmh
JMH 适用于构建各种规模的荷载,并具有一些相当大的优势:
这是否意味着它是一个complete java application 工具?不,而且可以说不存在适用于所有应用程序的此类工具。 JMH 非常适合进行过程中的基准测试/工作负载。在负载工作负载下的延迟有点尴尬,但对于所有吞吐量工作负载来说完全没问题。我用它来对 Cassandra(作为一个大块服务器应用程序的示例)、Netty Web 服务器、库或小代码 sn-ps 进行基准测试。
负载是真实世界吗?对于服务器应用程序,将客户端和服务器嵌入到同一个 JVM 中肯定是不现实的,但这并不意味着它没有用处,方便和额外的功能可能值得。
通过一些努力,JMH 可以用作进程外应用程序的负载生成工具。嵌入式分析器不起作用,但比从头开始要好得多。
【讨论】:
这取决于应用程序类型和您正在寻找的性能测试类型、您尝试收集哪些指标以及您需要涵盖哪些非功能性需求。最初 JMH 代表 Java Microbenchmark Harness 并给出 micro 字样,我认为它不能用于任何应用程序的端到端性能测试,而是关于单个功能。
性能测试的常用方法假设模拟实际负载,也就是说,您需要将应用程序置于与生产环境相同的条件下,问题是 JMH 是否提供实现的可能性这容易与否。
我个人建议首先使用 JProfiler 或 YourKit 之类的东西来分析您的应用程序,同时使用单独的 load testing tool 像 Apache JMeter 将您的应用程序置于负载之下
【讨论】: