【问题标题】:Using the MethodEntry and MethodExit event hooks provided by the JVMTI how would I measure the time of a method executed in Java?使用 JVMTI 提供的 MethodEntry 和 MethodExit 事件挂钩,我将如何测量在 Java 中执行的方法的时间?
【发布时间】:2013-06-05 10:21:15
【问题描述】:

我看到了你的下面的线程。 我也试图做类似的事情,但不确定哪个 api 会给出最好的结果: 你能推荐一下你用的是哪一个吗?

使用 JVMTI 提供的 MethodEntry 和 MethodExit 事件挂钩,我将如何测量在 Java 中执行的方法的时间?

简单的意思就是:time2 - time1 但是我看到的问题,我如何区分不同的方法?有一个methodID,但是递归调用呢?方法打开后什么时候关闭?

我应该比较堆栈跟踪吗?什么是有意义的数据结构来跟踪输入的方法?地图之类的?

【问题讨论】:

    标签: execution-time jvmti


    【解决方案1】:

    使用 MethodEntry 和 MethodExit 事件来记录方法时间可能不是一个很好的策略,因为使用这些事件会严重打乱时间。您可能希望所有方法的干扰都相同,并且您仍然可以获得相对时间,但我不确定这是真的。

    更好的策略是使用字节码检测来跟踪这些事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2011-10-03
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多