【问题标题】:Run Micro-benchmark in application servers [JMH]在应用服务器中运行微基准测试 [JMH]
【发布时间】:2015-03-09 06:53:28
【问题描述】:

我阅读了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 注释的方法?

【问题讨论】:

    标签: java jboss microbenchmark jmh


    【解决方案1】:

    @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 不是这样的解决方案,你应该看看别处。

    【讨论】:

    • Aleksey,您能否向我推荐一些可用于此用例的工具,我可以弄清楚 [3] 到 [4] 花了这么多时间。
    【解决方案2】:

    您可以为您的用例使用像石墨这样的监控工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2017-07-07
      相关资源
      最近更新 更多