Jprofiler分析视图简介

2019-08-02  本文已影响0人  LittleJessy

Telemetries:遥测

该模块是对应用服务监控数据的一个图表概览 在这里插入图片描述

应用技巧

Memory/Thread/CPU Load比较常用。

Live memory:实时内存视图

该模块动态显示对象堆内存的使用情况


在这里插入图片描述

应用技巧

在这里可以查看类或者方法的内存占用情况,若发现某个类或者方法内存占用比较高,或者某段时间占用持续升高,就可以关注这个类或者方法,是不是采用类占用大量内存的手法。
点击【mark current values】可以对当前的监控数据进行标记,褐红色代表内存的占用情况,绿色代表参考时间点。这样就可以观察内存的使用,对象的创建和gc的使用情况等。
点击【mark current values】后,All Object和Record Object会多出一列Difference,该列显示类当前时间对象实例数量较之标记时刻对象实例数量的差值,以数字和百分比显示。


在这里插入图片描述

Heap Walker:堆遍历视图

该模块可以明确查看对象的引用关系,常用来查找内存泄漏问题。

在这里插入图片描述
应用技巧

当发现某个该释放掉的对象没有释放,就可以看一下哪个实例在引用它,找到了根即找到了溢出点。
例如,在Live Memory视图中发现某个类或者包持续消耗内存不释放,在该类或包上右键选择“show section in Heap Walker”,即可进入堆视图,在该视图查看对象堆内存具体分配情况,已经对象的引用和被引用情况。

CPU views:CPU视图

从5个子分析视图共同组成,从不同层面展示类程序对cpu的使用情况


在这里插入图片描述

应用技巧

观察某个时间段内线程对应cpu的使用情况,如果某个方法对cpu长时间的高频占用,那程序肯定会慢,这时就要检查该方法中是否有什么非常耗时的计算。

Threads:线程视图

该模块主要用来监控管理线程的运行状态。


在这里插入图片描述

应用技巧

根据Threads History可以查看当前系统是否有线程堵塞的情况。若存在,只需在当前线程右键选择“show call tree for selected Thread”,在call tree视图查看线程分配调用树以及cpu的占用率,在相关的类方法上右键选择“call graph ”可以直观查看线程调用树并追踪阻塞的方法或者类。

Monitor & locks:锁视图

该模块显示类JVM内部锁及监控运行的状态

在这里插入图片描述

应用技巧
通过Current Locking Graph可以很直观的查看当前线程锁定状态及线程和监视器的关系
黄色箭头:线程等待
红色箭头:线程死锁
黑色箭头:指示了监视器对线程的所有权

Batabases:数据库快照对比

该模块给出类5中预定义的数据库探针,JDBC, JPA/Hibernate ,MongDB, Cassandra ,HBase,可根据自身程序所采用的数据库框架选择合适的探针,进行性能测试。

JEE & Probes:Java探针

MBeans:可管理资源

上一篇 下一篇

猜你喜欢

热点阅读