运行 应用服务器中的微基准测试 [JMH]
Run Micro-benchmark in application servers [JMH]
我阅读了 JMH 并尝试了提供的示例。
我想做的是测量以下场景的统计数据,
[ 1] client order -> [2] server -> [3] start processing the order ->
[4] processed the order successfully and ready to send -> [5] client
receive the response
我可以成功完成 [1] 到 [5] 场景。在那里我使用 benchmark.jar
从 @Benchmark 注释方法调用我的客户端
现在我一直在测量从 [2] 到 [4] 的统计数据,这代表服务器端处理。我应该通过注释服务器端方法来做到这一点吗?如果是这样,我如何以获取基准统计数据的方式调用这些方法?
文档说 The recommended way to run a JMH benchmark is to use Maven to setup a standalone project that depends on the jar files of your application.
这是否意味着我正在尝试的场景无法使用 JMH?
更新:
有没有办法通过 rmi 调用来调用 @Benchmark 注释的方法?
@Benchmark
Javadoc 说:
* <p>{@link Benchmark} demarcates the benchmark payload, and JMH treats it specifically
* as the wrapper which contains the benchmark code. In order to run the benchmark reliably,
* JMH enforces a few stringent properties for these wrapper methods, including, but not
* limited to:</p>
@Benchmark
是标定 JMH 应视为基准主体的代码段的注释。它 而不是 一个神奇的注释,它可以测量程序中其他地方的任何给定方法。而且,您不应该自己调用 @Benchmark
方法。
您想要的不是基准,而是一个 tracing/monitoring/profiling 解决方案,可以检测和说明请求通过的所有阶段。 JMH 不是这样的解决方案,你应该去别处看看。
您可以为您的用例使用像 Graphite 这样的监控工具。
我阅读了 JMH 并尝试了提供的示例。
我想做的是测量以下场景的统计数据,
[ 1] client order -> [2] server -> [3] start processing the order -> [4] processed the order successfully and ready to send -> [5] client receive the response
我可以成功完成 [1] 到 [5] 场景。在那里我使用 benchmark.jar
从 @Benchmark 注释方法调用我的客户端现在我一直在测量从 [2] 到 [4] 的统计数据,这代表服务器端处理。我应该通过注释服务器端方法来做到这一点吗?如果是这样,我如何以获取基准统计数据的方式调用这些方法?
文档说 The recommended way to run a JMH benchmark is to use Maven to setup a standalone project that depends on the jar files of your application.
这是否意味着我正在尝试的场景无法使用 JMH?
更新: 有没有办法通过 rmi 调用来调用 @Benchmark 注释的方法?
@Benchmark
Javadoc 说:
* <p>{@link Benchmark} demarcates the benchmark payload, and JMH treats it specifically
* as the wrapper which contains the benchmark code. In order to run the benchmark reliably,
* JMH enforces a few stringent properties for these wrapper methods, including, but not
* limited to:</p>
@Benchmark
是标定 JMH 应视为基准主体的代码段的注释。它 而不是 一个神奇的注释,它可以测量程序中其他地方的任何给定方法。而且,您不应该自己调用 @Benchmark
方法。
您想要的不是基准,而是一个 tracing/monitoring/profiling 解决方案,可以检测和说明请求通过的所有阶段。 JMH 不是这样的解决方案,你应该去别处看看。
您可以为您的用例使用像 Graphite 这样的监控工具。