java开发mysqlwin10,java开发sdk工具包
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
一、简介
JDK本身自带了许多JVM调优监控工具,可以帮助我们查看Java应用程序的进程、线程、内存栈等信息。这些工具命令包括jps、jstack、jmap、jhat等等。
这些命令所在位置:
Linux:安装完JDK后,这些命令工具会默认放在/usr/bin/下,直接使用即可; Windows:在Windows下,这些命令工具在安装Java目录的jdk_xxx/bin/目录下,比如C:Program FilesJavajdk1.8.0_212bin,如果想要在控制台上使用的话,可以将改路径添加到环境变量Path中。二、命令使用介绍
1、JPS
该命令用于打印输出当前JVM中运行的Java进程状态信息,命令格式为:
options:表示命令可选参数,支持以下选项: -q:仅显示pid; -m:查看进程pid及main方法参数; -l:打印程序对应JAR文件所在的完整路径名; -v:查看进程pid及JVM的参数; -h:打印帮助信息; hostid:表示主机地址(包含协议、主机名、端口、服务名称),如果没有给出则默认为本地主机;实例如下:
2、JSTACK
该命令用于查看指定Java进程pid的堆栈信息,命令格式为:
可选参数:
-l:长列表展示,打印锁的附加信息; -m:打印Java和底层C/C++框架的所有栈信息; -F:没有响应的时候强制打印栈信息;实例如下:
以上只是堆栈信息的一部分内容,从内容中可以看到线程的运行状态为RUNNABLE,线程的运行状态有如下几种:
NEW:未启动,不会出现在dump中; RUNNABLE:正在虚拟机中运行; BLOCKED:被阻塞,并等待监视器锁; WAITING:无限时等待其他线程释放锁; TIME_WAITING:有限时的等待其他线程释放锁; TERMINATED:已退出。3、JMAP
该命令用于查看堆内存的使用情况,一般与jhat结合一起使用,命令格式为:
可选参数:
-heap:查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况; -histo[:live]:查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象; -dump:format=b,file=dumpFileName:把进程内存使用情况dump到文件中;实例如下:
查看堆内存情况:
查看堆中对象数量:
生成dump文件:
4、JHAT
该命令用于访问Jmap命令生成的dump文件,使用浏览器访问,命令格式为:
常用可选参数:
-port:指定Jhat的HTTP服务端口,默认为 7000;实例如下:
然后在浏览器中输入地址:localhost:7000(IP地址以运行 Jhat 命令所在服务地址为准):
5、JSTAT
该命令用于统计监测JVM,命令格式为:
其中:
vmid:为虚拟机ID,在Linux/Unix系统上一般就是进程ID; interval:为采样时间间隔; count:为采样数;比如,下面命令为打印GC信息,采样时间间隔为 250ms,采样数为 3:
以上各列的含义为:
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used); EC、EU:Eden 区容量和使用量; OC、OU:年老代容量和使用量; PC、PU:永久代容量和使用量; YGC、YGT:年轻代 GC 次数和 GC 耗时; FGC、FGCT:Full GC 次数和Full GC 耗时; GCT:GC 总耗时;我们需要明白关于JVM堆内存的布局关系:
堆内存 = 年轻代 + 年老代 + 永久代 年轻代 = Eden 区 + 两个 Survivor 区(From 和 To)XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com