分析与检测-Java

| 基本问题:JVM向JVMTI提供了用于剖析和调试JVM的本机API。 JVM工具也一样(是吗?)。如果是,两者之间有什么区别?     
已邀请:
        我不认为Instrumentation是JVMTI是Instrumentation的超集。因为这两个都可以独立使用。 JVMTI基于事件,在事件处理程序中,我们可以捕获有关JVM的必需信息。 工具化是一种我们在其中修改字节码,从而在运行时在类中所需位置添加额外的代码段,然后再将其加载到JVM中的方式。这些额外的代码在执行时将有助于收集探查器所需的信息。 可以借助各种第三方jar(例如ASM)来实现检测。 根据我的知识和经验,这两个都是Java概要分析,而不是本机概要。 可能需要阅读更多文档并尝试不同的样本以更好地理解。     
        JVMTI提供了调试器所需的所有功能,但是,如果您想要的不仅仅是JVMTI提供的功能,则需要使用Instrumentation。     
        JVMTI是基本功能,可提供各种事件以进行调试,概要分析等。它提供的功能之一是访问拦截(和重新定义)类。 java.lang.instrument是JVMTI之上的Java包装器,它提供了一种很好的,简单的,可访问的方式来获取类加载事件。 可以将JVMTI视为java.lang.instrument的纯超集,但是需要用户编写C代码。     

要回复问题请先登录注册