【问题标题】:Getting method level CPU time spent through MBeans获取通过 MBean 花费的方法级 CPU 时间
【发布时间】:2017-07-19 15:09:14
【问题描述】:
  ThreadMXBean.getThreadCpuTime()

提供仅在线程级别花费的时间。我正在寻找一种方法来获取线程内方法级别所花费的 CPU 时间。

Oracle/OpenJDK Java 是否支持类似的东西?

我正在通过 MBeanServerConnection 在远程 JVM 上调用 ThreadMXBean API,但我无法从远程 JVM 上运行的代码中调用。

【问题讨论】:

    标签: java jmx


    【解决方案1】:

    线程 cpu 时间是累积的,因此您可以在一个方法之前对其进行采样,然后在之后再次采样,两个样本的增量是该方法中消耗的 cpu 时间。

    【讨论】:

    • 其实我无法修改目标JVM上的Java代码。我忘了提到它是一个到远程 JVM 的 JMX 连接。
    • 啊,那是一匹不同颜色的马……看看 JVisualVM 或 Java Mission Control (JMC)。两者都可以远程检测您的代码,我认为它们可以捕获 CPU 利用率。
    • 我需要通过编程/API 访问此信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多