0

我阅读了有关JMH的信息并尝试了提供的示例。

我想要做的是测量以下场景的统计数据,

[1] 客户端订单 -> [2] 服务器 -> [3] 开始处理订单 -> [4] 成功处理订单并准备发送 -> [5] 客户端收到响应

我可以成功地完成 [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 注释的方法?

4

2 回答 2

2

@BenchmarkJavadoc 说:

 * <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方法。

您想要的不是基准测试,它是一个跟踪/监控/分析解决方案,可以检测和说明请求通过的所有阶段。JMH 不是这样的解决方案,你应该看看别处。

于 2015-03-09T13:13:10.483 回答
1

您可以将石墨等监控工具用于您的用例。

于 2015-09-01T05:04:16.500 回答