文章目录
JVM调优
1、jps
jps(Java Virtual Machine Process Status Tool) Java虚拟机进程状态工具
显示当前所有的Java进程pid的命令。
命令格式
- jps [options] [hostid]
2、jstat
可以查看jvm GC情况
全称“Java Virtual Machine statistics monitoring tool”
英 [stəˈtɪstɪks] 统计
jstat是监控Java虚拟机(JVM)统计信息。
用于监视虚拟机各种运行状态信息的命令行工具,如:类装载、内存、垃圾收集,是在没有图形页面纯文本控制台中定位运行期虚拟机性能问题的首选工具。
命令格式
- jstat [option vmid [interval [s|ms][count]]]
如:jstat -gc 2764 250 20
每隔250ms查询一次进程2764的垃圾收集情况,一共查询20次。
3、jinfo
命令:jinfo pid
描述:输出当前 jvm 进程的全部参数和系统属性
从上面可以看出新生代和老年代的比例1:2
4、jstack(可检测死锁)
可以用来检测死锁。
jsp -l 15532 > /usr/local/1.txt
jstack可以查看是否有死锁
jconsole也可以查看线程是否有死锁
5、javap
语法
javap
其中classes就是你要反编译的class文件
6、jconsole(图形界面)
jinfo对应VM概要
判断死缓选
下面是在多核cpu下,所以cpu没百分之百
通过上面的图片还不能判断出死循环。
在通过下面的可以看出线程一直处于Runnable,可以看到在16行。
通过上面输出的日志文件也可以看出,找到哪个线程一直在Runnable,再多少行。
7、java Visual VM
我们写的代码线程一直绿色的话,应该就是死循环。