我计划在我们当前的 Java 代码之上编写一些分析软件,并找到了 JVM TI 和 java.lang.instrument。我正在寻找不会影响原始代码性能并且还允许分析的东西:
- 函数花费的时间
- 特定变量在整个函数调用中使用的内存
无论如何,JVM TI 和 java.lang.instrument 有什么区别?我确实知道 JVM TI 使用 C/C++ 代码并且依赖于平台,而 java.lang.instrument 只是一个 Java API,所以这确实让 java.lang.instrument 更具吸引力。但是,JVM TI 相对于 java.lang.instrument 有什么好处(如果有的话)?