现实企业级Java开发中,有时候我们会碰到下面这些问题:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
......
这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求
A、 jps(Java Virtual Machine Process Status Tool)
jps主要用来输出JVM中运行的进程状态信息
B、 jstack
jstack主要用来查看某个Java进程内的线程堆栈信息。
C、 jmap(Memory Map)和jhat(java Heap Analysis Tool)
jmap用来查看堆内存使用状况,一般结合jhat使用。
D、jstat(JVM统计监测工具)
启动jvisualvm。首先到JDK安装目录/bin目录下,双击jvisualvm.exe文件启动。
进入jvisualvm界面,右侧为正在运行的Java程序,打开了一个jconsole程序来做示例。
双击要监控的Java进行,有关监控进程的概要,监控,线程等信息都会以图像的方式显现出来,能更方便的对Java运行程序做分析。
右键左边栏,正在运行的Java程序,可以执行Dump,线程,Dump堆的操作并且可以将正在运行的程序进行快照储备,同时可以设置在发生内存溢出时自动生成Dump文件。
右键【文件】-->【添加远程主机】可对远程运行的Java程序进行监控。
菜单栏,工具-->插件 辅助功能 可以帮助更细致对Java程序进行监视分析,比如Visual GC 能显示年轻代里的Eden区和survivor区的实时数据。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)