【发布时间】:2017-07-02 02:51:21
【问题描述】:
我正在尝试使用ASM 来计算在单个函数中执行的各个字节码指令以构建直方图。我看到有一个工具ByCounter 可以完成类似的任务——但我无权访问源代码。
我的理解是 Java asm 字节码库可以检测类、字段、方法,但是找不到检测单个字节码指令的示例(尽管来自 ByCounter——发现它是可能的)。
如果像 JVMTI 这样的工具更适合,那么这也是有用的信息!
感谢您的帮助!
【问题讨论】:
-
您打算将这些信息用于什么目的?如果您正在尝试分析或优化程序,字节码并不是 JIT 最终会实际运行的 - 它会在运行时将整个事情重写为一些完全不同排列的本机代码。
-
你不能访问一个方法的
instructions并检查size吗? -
@LouisWasserman 我想看看在一个方法中沿着不同的代码路径执行了多少指令。我同意这是一种不完美的方法,但它是获得一些基线指标的开始。
-
@VinceEmigh 这对于静态分析来说是个好主意,但是对于动态分析来说这不是正确的吗?
标签: java bytecode instrumentation java-bytecode-asm