1、简介
JProfiler是一个ALL-IN-ONE的JAVA剖析工具,可以方便地监控Java程序的CPU、内存使用状况,能够检查垃圾回收、分析性能瓶颈。
本说明文档基于JProfiler 9.2编写。
2、安装
安装包:JProfiler_windows-x64_9_2.exe (JProfiler 9注册码.txt)
如果要监控的远端服务器操作系统不同,在Select Component这步,可以选择安装不同系统的Native libraries for profiling agent。
如果要为Eclipse安装JProfiler插件,到安装插件的步骤时,选择当前Eclipse版本,再指定Eclipse路径即可。
3、启用本机监控
1、首先启动希望监测的Java进程,这里以我们的服务端为例。
2、打开JProfiler,选择菜单 Session - Start Center,切换到 Quick Attach 标签页。这里列出了当前本机上正在运行所有的Java进程,选择要监测的进程,按 Start 开始。
3、接下来的弹框中可以选择Instrumentation和Sampling两种预置的Profiling设置,为了使用JProfiler的全部特性,建议选择Instrumentation。
4、还可以进行详细设置,一般直接OK即可。
4、监控数据
1、 概览(Telemetrie)
在Overview页中,可以看到当前监控的Java程序概况,包括内存、垃圾回收、类、线程、CPU负载等图表。
2、 内存(Live Memory)
在All Objects可以看到内存中各个对象的数量和占用情况。在Recorded Objects和Class Tracker中,还可以对不同的对象或类分别监控。
3、 CPU (CPU views)
在Call Tree页,可以按运行顺序逐级查看当前程序运行耗时。
在Hot Sports页,可以看到各个方法的执行时间和调用次数,可用于辅助分析性能。
4、 堆遍历器(Heap walker)
在Heap walker页,可以点击相机图标按钮记录Heap快照。建立快照后,可以详细分析静态内存中对象数量。还可以查看不同对象的引用计数。
5、 线程(Threads)
Thread History页可以看到当前各个线程的工作状况。
6、 数据库(Database)
在JDBC页,可以看到连接时间轴、查询用时等信息。
在JPA/Hibernate页,可以获取到和数据库查询有关的Call Tree和Hot Spots。
5、数据导出
如图所示,Export能够将当前页的信息导出为HTML页面或XML数据。
根据当前处在不同的页面,最后还会有不同的项目,比如线程页可以选择Thread Dump。
6、参考文档
官方文档: http://resources.ej-technologies.com/jprofiler/help/doc/
一篇JProfiler笔记: http://blog.csdn.net/chendc201/article/details/22897999
内存泄漏相关:https://www.evvvvvvget.com/article/2013/5/22/18963.html
远程监控相关:http://stackoverflow.com/questions/12215487/remote-profiling-jprofiler