jprofiler_windows-x64_11_0_2
相接: https://pan.baidu.com/s/1EWxW5VT100D1v_HVvKYGqQ?pwd=qif5 索要码: qif5
然后掀开破解机器 KeyGen.exe
相接: https://pan.baidu.com/s/13MX6iLFtcmerdGovYjOh4g?pwd=cx7e 索要码: cx7e
咱们启动一个腹地容颜weblogic,Jboss,tomcat不祥springboot齐行,咱们就拿主流的springboot来说(其实内嵌的即是tomcat)
然后咱们掀开jprofiler,监控指定的武艺
我的处事器是x86的uname -m在需要监听的看法处事器上装配jprofiler_linux_11_0_2.tar.gz
相接: https://pan.baidu.com/s/1O03jqyBdsPZHt3zpoMzwAg?pwd=n297 索要码: n297
我是放在/opt 下,解压tar zxfv jprofiler_linux_11_0_2.tar.gz,重定名为:jprofiler11设立/etc/profile文献,添加如下履行
找java装配目次whereis java
/usr/local/src/java/java-se-8u41-ri/ 即是装配目次,咱们进去望望有莫得jre目次
修改完后,使环境变量顺利source /etc/profile
需要监听的容颜必须在处事器上运行中不然JProfiler 启动会失败的
启动我方的容颜然后检测是否启动
启动得手后那么就不错启动处事器上的JProfiler处事了 /opt/jprofiler11/bin/jpenable
选拔[1]然后会清爽客户端不错相接的端标语,用于客户端视接处事器的
设立window下的jprofile11
这个无谓多说,看诠释就知谈啥东西
稽查对象增长情况ALL Objects(一谈对象)
Recorded Objects (记载对象)
咱们不错指定开启时辰内记载对象的的使用情况,这么就能更佳快速的找到问题 ,每次开关齐会从新统计,还有最关键的即是 Mark Current 这个按钮,他不错标记目下对象的使用情况为绿色,那么行增的对象即是红色了,这么一双比就知谈阿谁对象有问题了
右键不错删除标记
Allocation Call Tree(记载调用树)
启动后统计调用情况,每次开关齐会从新统计
Allocation Hot Spots(热门)
能统计出来开启时辰段内使用某些秩序不祥xxx 的调用情况,相配于反向查询谁调用我了,开关后从新统计
上图清爽println这个秩序被 MathGame.run 和MathGame.main秩序调用,以及他们这些秩序一共调用了些许次和些许时辰以及占用的履行大小
Class Tracker(类调用追踪)
能检测指定类,的时辰片断调用情况和调用频率来进行分析出来,是否有问题
选拔需要监控的类不祥包那那么当这些类进行被调用了,就会在视图上清爽
不错看到在什么时辰调用了 ,要是思暂停驻来
通过关闭在开启不错从新统计
一般情况咱们会过滤掉咱们不思看到的履行
选拔demo.即是过滤此包下的一谈履行,思要规复过滤履行不错在修复里进行规复
Hot Spots(热门)
Call Graph(稽查秩序的调用树)
Method Statistics(秩序统计)
开启后,这段时辰内被调用的秩序就会被防止到
Call tracer 调用追踪
开启后会记载这段时辰内的秩序践诺情况包括里面践诺情况,关闭后以树展示出来
从上图标记是红的,就能看出来秩序里面践诺了轮回了
要是不思看到某秩序那么不错荫藏掉
规复清爽
JavaScript XHR
JProfiler Origin Tracker_v1.0.3.crx
相接: https://pan.baidu.com/s/1gnhtmBIcUYJbxecmrKojPg?pwd=rrpu 索要码: rrpu
要使用此功能,您必须使用Google Chrome 看成浏览器并装配 JProfiler 源追踪器扩张。
运行前端时候点击下
然后插件热诚就变为红色了,那么就诠释这个网站激活得手了
然后回到 jprofiler中就发目下监听中了
贯注: 要是苦求的线程里面莫得永劫辰的壅塞不祥寝息,一般齐持不到的,因为更新频率是2秒一次
看着图很浅易,除了绿色的其他要是时辰过长齐有问题,要是出现红色那么即是死锁测试样子即是掀开监控后去拜访有问题的功能,那么就能排查出来具体的问题, 找到问题的线程,那么咱们就能去赢得这个线程里面的堆栈,从堆栈中就能看出来问题是啥
Thread Monitor(线程列表)要是线程过多, 在Thread History中不好找那么咱们不错通过这个列表进行筛选,这么就能快速锁定有问题的线程了
通过上头的秩序找到问题的线程秩序后,然后咱们就能在 Thread Dumps去查询对应秩序的堆栈信息每次点击齐能赢得最新的一谈线程堆栈信息,而况以树型展示
上图红色的即是死锁,告诉你这个锁发生在阿谁类些许行
这种齐是第三方的苦求,(有效户的有其他用具的,要会分手,看堆栈就能看出来的)
访佛于下图这种就无谓看,这齐是系统我方的苦求不祥其他的苦求
上图是tomcat里面进行叫醒和挂起线程的操作,估量是线程池的东西
咱们一般找底下这图出现的苦求这个才是真确的苦求
从上图就能看出来问题了,是里面一直在调用sleep,看堆栈是从下往上看,然后咱们去看源码
Mybaitis 和JDBC齐相通
1秒(s)=1000毫秒 1毫秒(ms)=1000奥妙 10万奥妙(us)=1秒从上图不错看到我查询用户数目才使用了1毫秒不到
不错进行开关进行从新监控
苦求情况
贯注: 要是是苦求是死轮回不祥死锁那么这个是监控不到的,必须这个苦求能反应才行
至于其他的功能我基本没用到这里就不说了,用到了在补上
堆快照分析 导出现时堆的快照
导入对堆文献快照
Current Object Set(现时堆的通盘对象情况)
一般需要多个堆的快照进行对比,进行发现是否有内存线路问题和对象增长速渡过快问题,从而进行分析原因
Thread Dump(现时堆的线程情况)
不错稽查到死锁,不祥死轮回不祥永劫辰处于恭候情景的线程,践诺的秩序和问题原因
相比快照贯注: (.hprof)文献的快照只赈济内存相比 ,而jps快照是赈济通盘的,然则需要开启部分功能才行
我准备了3个同源的堆快照(.hprof),是在不同时代段赢得的
同期及第需要对比的一谈快照
固然也不错后期一个一个添加
然后按住Shift+鼠标左键选拔2个需要对比的快照(一次最多对比2个快照,无情拿第一个快照和比第一个时辰段大的快照进行挨次对比)
内存相比加号即是 333333.hprof这个快照比00000.hprof快照增多的终末底下有一个汇总,333333.hprof比00000.hprof 总体增多了仍是减少了些许内存
对比不同时代段快照,不错看出来内存是一直处于增长的,仍是有减有增,要是一直保管在一个规模那么不错继承的 ,要是对比多个快照发现齐是一直处于增长莫得减过那么详情是有问题的,时辰长了就会发生oom了
调用情况相比必须开启
然后保存为jps文献
然后就不错进行对比了
到此这篇对于JProfiler11使用教程之JVM调优的著述就先容到这了,更多有关JProfiler11使用JVM调优履行请搜索剧本之家畴昔的著述或络续浏览底下的有关著述但愿大家以后多多赈济剧本之家!