1.安装
1.先去官网下载11版本的软件
安装的时候,会提示下面的路径没有找到,原因是我们IDEA的路径和Jprofiler的默认插件路径不大一致,那么我们可以先把IDEA的路径改一下,如图:
2.安装完后,会在plugins里看到插件
3.IDEA配置软件启动
2.框架大致介绍
- Profiled JVM:要分析的应用程序;
- JProfiler GUI:分析工具;
- JVMTI:JVM Tool Interface,是基于事件消息的系统,JProfiler agent可以注册不同的处理函数到不同的消息事件上;(线程的生命周期/类的加载/对象的分配/堆内存的实时信息/垃圾回收等等)
- JProfiler agent:数据采集代理器,将采集好的信息保留在内存中进行,并统计好;
- Socket 8849:传输数据或者指令,走的是tcp,意味着可以远程进行性能分析监控或操控(比如内存回收GC);
- GUI Render:界面工具;
3.启动方式
1. Attach Mode:依附模式
可直接加载JProfiler Agent到本机正在运行的jvm中, 优点是很方便,缺点是一些特性不能支持。
如果选择Instrumentation数据采集方式,那么需要花一些额外时间来重写需要分析的class,这时,开启会慢一些;
2. Launch Mode:发行模式(完整模式)
在启动被分析的程序时,
(1) 先启动JVM,带上相关VM参数;
(2) 启动JProfiler Agent;
(3) JProfiler GUI将收集到的配置信息通过socket发送给JProfiler Agent;
(4) 收到这些信息后,被分析的程序才开始启动;
4.采集方式
- Sampling 取样:每隔一定时间(5ms)将每个线程栈及方法栈中的信息统计出来。优点是对应用的影响较小,缺点是一些数据/特性不能提供(例如:方法的调用次数);
- Instrumentation 指令:在class加载时,JProfiler会把相关的功能代码写入到需要分析的class中,对正在运行的JVM有一定影响。优点是功能完毕,但对要分析的应用影响较大,所以一般结合过滤器filter一起使用,如JRE中的class和framework的class都会过滤掉;
Sampling推荐模式,开销很低,是一种相对安全的模式,但是一些特性不支持;
Instrumentation,指令模式下,所有特性都支持,比如方法调用次数和方法统计,但是良好的过滤器是非常必要的,否则会影响性能开销;
注: JProfiler的绝大多数核心功能都依赖于方法调用来采集数据的。