第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

Java性能調(diào)優(yōu)工具之JDK命令行

標(biāo)簽:
Java

1.1 jps

类似Linux的ps,但是jps只用于列出Java的进程
可以方便查看Java进程的启动类,传入参数和JVM参数等
直接运行,不加参数,列出Java程序的进程ID以及Main函数等名称


5bd42bab0001bfa002480088.jpg

jps命令本质也是Java程序


5bd42bab00015f6010000074.jpg

-m 输出传递给Java进程的参数


5bd42bab0001ec9f03950090.jpg

-l 输出主函数的完整路径


5bd42bab000130aa02840087.jpg

-q 只输出进程ID


5bd42bac0001367c10000091.jpg

-v 显示传递给jvm的参数

1.2 jstat

用于观察Java应用程序运行时信息的工具,详细查看堆使用情况以及GC情况


5bd42bac00012e2903220215.jpg

image.png

jstat -class pid:显示加载class的数量,及所占空间等信息。

5bd42bac0001373e05120061.jpg

-compiler -t:显示JIT编译的信息


5bd42bac00015e6b09830067.jpg

-gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。


5bd42bac0001a48d10000054.jpg

-gccapacity比-gc多了各个代的最大值和最小值


5bd42bac0001093605760498.jpg


https://img1.sycdn.imooc.com//5d29ec14000184b707220075.jpg

-gccause 4768 最近一次GC统计和原因


LGCC:上次GC原因
GCC:当前GC原因

https://img1.sycdn.imooc.com//5d29ec2a0001d7cb05780092.jpg

-gcnew pid:new对象的信息。


https://img1.sycdn.imooc.com//5d29ec690001c5df06000487.jpg


jstat -gcnewcapacity pid:new对象的信息及其占用量。


https://img1.sycdn.imooc.com//5d29ec480001878706580089.jpg

-gcold 显示老年代和永久代信息


https://img1.sycdn.imooc.com//5d29ec7c00019f3b05930474.jpg

-gcoldcapacity展现老年代的容量信息


https://img1.sycdn.imooc.com//5d29ec900001566e06160390.jpg

image.png


https://img1.sycdn.imooc.com//5d29ec9d00015e7406060101.jpg

-gcutil显示GC回收相关信息

https://img1.sycdn.imooc.com//5d29ecb50001494406250472.jpg

jstat -printcompilation pid:当前VM执行的信息。

还可以同时加两个数

https://img1.sycdn.imooc.com//5d29ecc90001cc2404400104.jpg

输出进程4798的ClassLoader信息,每1秒统计一次,共输出2次

1.3 jinfo

查看正在运行的Java应用程序的扩展参数,甚至在运行时修改部分参数
jinfo <option> <pid>

jinfo可以查看运行时参数:

jinfo -flag MaxTenuringThreshold 31518
-XX:MaxTenuringThreshold=15

jinfo还可以在运行时修改参数值:

> jinfo -flag PrintGCDetails 31518-XX:-PrintGCDetails> jinfo -flag +PrintGCDetails 31518

> jinfo -flag PrintGCDetails 31518-XX:+PrintGCDetails

1.4 jmap

生成堆快照和对象的统计信息

https://img1.sycdn.imooc.com//5d29ecdb0001d9a807310300.jpg

-histo 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

https://img1.sycdn.imooc.com//5d29eceb0001c75405620085.jpg

-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

获得堆快照文件之后,我们可以使用多种工具对文件进行分析,例如jhat,visual vm等。

1.5 jhat

分析Java应用程序的堆快照文件,以前面生成的为例

https://img1.sycdn.imooc.com//5d29ecfb0001ed9305770218.jpg

jhat heap.hprof


jhat在分析完成之后,使用HTTP服务器展示其分析结果,在浏览器中访问http://127.0.0.1:7000/即可得到分析结果。

https://img1.sycdn.imooc.com//5d29ed090001e8e107300284.jpg


1.6b jstack

导出Java应用程序的线程堆栈
jstack -l <pid>

jstack可以检测死锁,下例通过一个简单例子演示jstack检测死锁的功能。java代码如下:


https://img1.sycdn.imooc.com//5d29ed510001f08904870928.jpg


https://img1.sycdn.imooc.com//5d29ed620001f38702390145.jpg

使用jps命令查看进程号为11468,然后使用jstack -l 11468 > a.txt命令把堆栈信息打印到文件中


https://img1.sycdn.imooc.com//5d29ed7300016c4507320509.jpg


从这个输出可以知道:
1、在输出的最后一段,有明确的"Found one Java-level deadlock"输出,所以通过jstack命令我们可以检测死锁
2、输出中包含了所有线程,除了我们的north,sorth线程外,还有"Attach Listener", "C2 CompilerThread0", "C2 CompilerThread1"等等;
3、每个线程下面都会输出当前状态,以及这个线程当前持有锁以及等待锁,当持有与等待造成循环等待时,将导致死锁



作者:芥末无疆sss
链接:https://www.jianshu.com/p/c8f30d034d84
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消