JProfiler面板界面介绍
(1) Telemetries 遥测
查看JVM运行信息
内存占用 (Memory):统计内存已使用和空闲的间
堆实例对象记录(Recorded Objects): 以数组和非形式来分类记录堆上的对象量
对象创建回收记录(Recorded Throughput): 记录单位时间隔内对象创建和回收的数量
垃圾回收 (gc Actively):统计垃圾回收率
类加载数量(classes): 类加载的数量(分为 cpu 已加载和cpu 未加载)
线程活动状态(Thread): 线程活动数量
cup 负载(cpu load): 单位时间隔内cpu 的占有率
(2) Live memory实时内存视图
JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
All Objects 所有对象 :显示类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显示差异值。
Record objects 记录对象 :显示类或所有已记录对象的包【正在被使用或已经使用过的对象】。你可以标记出当前值并且显示差异值。
Allocation call tree 分配访问树 :显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
Allocation hot spots 分配热点 :显示一个列表,包括方法、类、包或分配已选类的J2EE组件。你可以标注当前值并且显示差异值。对于每个热点都可以显示它的跟踪记录树。【至少占总数1%的方法才会显示】
Class Tracker 类追踪器:显示了所标记的类或者包的实例随时间的变化
(3) Heap walker堆遍历
Classes 类 :显示所有类和它们的实例。
Allocations 分配 :为所有记录对象显示分配树和分配热点。
Biggest Objects 大对象 :显示占用内存多的对象
References 索引 :为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视图和输出视图的功能。
Time 时间 :显示一个对已记录对象的解决时间的柱状图。
Inspections
Graph
(4) CPU views剖析
JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。CPU视图部分包括:
Call tree 访问树 :显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
Hot spots 热点 :显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
Call graph 访问图 :显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
Method Statistics:记录了方法的调用时间细节
Call Tracer:记录多线程方法调用的时间数序
JavaScript XHR
(5) Threads线程剖析
Thread history 线程历史 :动态显示线程列表及线程的历史运行状态。
绿色:表明线程正在运行并能接受CPU时间
橙色:线程正在睡眠等待计时器或者其他线程唤醒
红色:表示线程阻塞
蓝色:表示线程Net I/O操作,线程在等待Java库的网络操作完成,在线程监听socket链接
或者等待读写数据到socket中时,会产生这种状态。
Thread monitor 线程监控 :显示所有线程的运行列表(包括执行状态、开始时间等)。
Thread Dumps:显示所有线程的堆栈跟踪。
(6) Monitors & locks
Current Locking Graph 死锁探测图表 :显示一个包含了所有在JVM里的死锁图表。
Current Monitors 目前使用的监测器 :显示目前使用的监测器并且包括它们的关联线程。
Locking History Graph
Monitor History 历史检测记录 :显示重大的等待事件和阻塞事件的历史记录。
Monitor Usage Statistics 监测使用状态 :显示分组监测,线程和监测类的统计监测数据。