【发布时间】:2022-12-21 04:34:37
【问题描述】:
我们计划为您计划利用 JMH 的基于 java 的 spring boot 项目实施 Microbenchmark 测试。
我们需要验证延迟和带宽指标,但不确定如何从 JMH 获取这些指标。
有人可以建议示例代码或参考吗?
【问题讨论】:
标签: performance microbenchmark jmh
我们计划为您计划利用 JMH 的基于 java 的 spring boot 项目实施 Microbenchmark 测试。
我们需要验证延迟和带宽指标,但不确定如何从 JMH 获取这些指标。
有人可以建议示例代码或参考吗?
【问题讨论】:
标签: performance microbenchmark jmh
首先,JMH 衡量的是吞吐量,而不是带宽。
下面是衡量基于 Spring Boot 的应用程序启动成本的例子:https://github.com/stsypanov/spring-boot-benchmark
以下是使用 JMH 进行的与 Spring 相关的测量的各种示例:https://github.com/stsypanov/spring-benchmark(例如,this benchmark 允许测量从应用程序上下文中获取新原型范围的 bean 的成本。关于你的问题,如果你想测量延迟(即平均基准方法的执行时间)你按原样使用提到的基准。如果你想测量吞吐量,那么只需更改
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
到
@BenchmarkMode(Mode.Throughput)
@OutputTimeUnit(TimeUnit.SECONDS)
第二个注释集告诉 JMH 打印该方法在一秒钟内可以调用多少次。
【讨论】: