基本问题:JVM提供JVMTI作为用于分析和调试JVM的本地API。JVM仪器化也可以做到这一点(正确吗?)。如果是,两者之间有什么区别?
我认为Instrumentation和JVMTI并不是包含关系,因为它们都可以独立使用。
JVMTI基于事件,我们可以在事件处理程序中获取有关JVM的所需信息。
Instrumentation是一种修改字节码的技术,在类加载到JVM之前,我们可以在需要的位置动态添加额外的代码。当执行这段额外的代码时,将帮助收集分析器所需的信息。
可以使用各种第三方jar(如ASM)来实现Instrumentation。
据我了解和经验,这两种技术都用于Java性能分析,而不是本地性能分析。
也许需要阅读更多文档并尝试不同的示例以获得更好的理解。