当前位置:首页 » 科技前沿 » 正文

JVM调试常用命令四杰

3675 人参与  2018年07月29日 22:05  分类 : 科技前沿  评论

1、jinfo

jinfo pid

功能:查看和修改java运行的环境和配置!

2、jmap

jmap -histo:live pid

功能:查看每个类占用的内存,内存占用比较大的需要分析对应的代码找出对应的问题或隐患。

3、jstack

jstack pid

功能:查看进程的堆栈快照信息;

jstack pid > xxx.x

功能:把进程的堆栈快照信息输出到xxx.x文件里,使用vim查看和分析正在运行的线程、线程等待、锁 等等信息;

jvm线程堆栈中的线程状态一共有以下:

1、TIMED_WAITING:出现在线程调用了wait(long)或者join(long)或sleep(long)的情况下

在线程堆栈中有两种常见表示:TIMED_WAITING (on object monitor)和TIMED_WAITING (sleeping)

2、WAITING:线程获得一个对象锁后,在该对象上等待其他线程来notify()

在线程堆栈中常见表示:WAITING (on object monitor)

3、BLOCKED:线程在等待临界资源被释放,比如等待另外一个线程释放临界资源

在线程堆栈中常见表示:BLOCKED (on object monitor)

4、RUNNABLE:当获得CPU的使用权时就可运行的线程,所以一次线程堆栈中可以有多个处于RUNNABLE状态的线程。该状态下,线程处于等待的原因,io,cpu时间片,而非锁,sleep().

在线程堆栈中常见表示:

java.lang.Thread.State: RUNNABLE

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)

at java.io.BufferedInputStream.read(BufferedInputStream.java:237)

4、jstat

jstat -gcutil pid

功能:查看新生代、年老代等等的使用情况(使用率),GC总时间等等。

命令中pid都是指需要查看的进程号。

注:这里只是介绍了几个常用的姿势,还有其他好多命令,可以留言!

【如有不正确的地方烦请指出,谢谢!】

版权声明 1. 文章编辑:神目网
2. 本站网址:https://www.sxlog.com
3. 注意:本站所有内容未经允许禁止转载!
4. 所有权:神目网保留对本站的所有权,包括但不限于修改、删除、更新网站内容等。

本文链接:https://www.sxlog.com/post/729.html

商务合作 - Email:admin@sxlog.com

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

随心网公众号

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

最近发表

标签列表

支付宝红包

支付宝扫码领红包

友情链接

本站支持IPv6访问 本站支持SSL安全访问

可信网站

神目 网站统计 | 网站地图 | 版权声明 | 关于本站

Copyright © 2015-2024 神目网 | Zblog强力驱动 All Rights Reserved.

×
随心网公众号 ×