当前位置: 首页 > 工具软件 > JVMTI > 使用案例 >

JVMTI

澹台俊晖
2023-12-01

JVMTI(JVM Tool Interface)是Java虚拟机提供的一整套后门。通过这套后门可以对虚拟机方方面面进行监控,分析。甚至干预虚拟机的运行。

JVMTI(JVM Tool Interface) , 是Java 虚拟机所提供的native编程接口。 JVMTI可以提供性能分析、debug、内存管理、线程分析等功能。

怎么使用?

a、JVMTI是一套本地编程接口。可以使用底层c/c++ 实现一个Agent的方式来使用JVMTI,设置一些回调函数,来实现我们的逻辑。从jdk1.5后,可以使用Java的Instrumentation接口(java.lang.instrument)来编写Agent。

b、采用java attach的方式,在程序运行时动态加载我们的逻辑。(jmap,jps,jstack等 jdk自带的工具都是通过这种方式实现的。)

使用java实现agent需要遵循JVMTI的规范.

jecko 是一款java应用线上分析诊断工具, 自主研发,支持jdk1.6+以上的应用。

提供了以下便捷:

  • 无侵入性,不需要依赖额外的sdk包,一键开启,即开即用。
  • 在线诊断,应用无需重新发布,保留应用现场环境。
  • 字节码增强技术,动态插入字节码埋点,分析目标程序。

现有功能:

1、火焰图:快速定位应用热点,生成火焰图

2、JVM详情:监控JVM的实时运行状态

3、函数追踪:函数内部的调用栈函数分析

4、线程分析:获取线程堆栈数据

后续会有针对在线诊断方面更多的功能,旨在帮助研发解决在线诊断的痛点问题。

产品已经在jdos 环境上线,欢迎使用。

 类似资料: