jmap是JVM内存映像工具,用于打印某个Java进程内存内的所有‘对象’的情况。命令格式为:jmap [ option ] pid。常用的参数包括:-dump:[live,]format=b,file=使用二进制形式输出JVM的Heap内容到文件;-histo[:live]打印每个class的实例数目、内存占用和类全名信息;-F强迫模式,即使pid没有响应也使用du...
如何查看java虚拟机堆内存的参数值
在查看Java虚拟机堆内存的参数值时,需要确保java_home/bin已配置到path环境变量下,这样可以方便地调用JDK自带的工具。下面介绍几个常用的命令及其功能。
jps是JVM进程状况工具,用于查看基于HotSpot JVM中所有进程的具体状态,包括进程ID、启动路径等信息。它类似于Unix上的ps命令,可以显示本地有权限的Java进程,方便查看运行中的Java程序及其进程号。使用时无需传递进程号作为参数,命令格式为:jps [ options ] [ hostid ]。
常用的参数包括:-m输出传递给main方法的参数,如果是嵌入的JVM则输出为null;-l输出应用程序主类的完整包名或JAR文件路径;-v输出传给JVM的参数。例如:jps -lmv可以查看指定进程的详细信息。
jinfo是JVM配置信息工具,可以输出并修改运行时Java进程的opts。它主要用于输出JAVA系统参数及命令行参数,命令格式为:jinfo [ options ] [ pid ]。常用的参数包括:-flag用于输出或修改JVM命令行参数。例如:jinfo 1796可以打印出很多JVM运行时参数。
jstack是JVM堆栈跟踪工具,用于打印给定的Java进程ID或core file或远程调试服务的Java堆栈信息。如果在64位机器上运行,需指定选项-J-d64。命令格式为:jstack [ option ] pid。常用的参数包括:-F强制打印栈信息;-l长列表,打印关于锁的附加信息;-m打印Java和native C/C++框架的所有栈信息。例如:jstack 1796可以查看指定进程的堆栈信息。
jstat是JVM统计信息监视工具,用于对Java应用程序的资源和性能进行实时的命令行监控,包括Heap size和垃圾回收状况的监控。命令格式为:jstat [ option pid [interval [ s | ms ] [count] ] ]。常用的参数包括:-gcutil输出已使用空间占总空间的百分比;-gccapacity输出堆中各个区域使用到的最大和最小空间。例如:jstat -gccapacity 1796 1s 5可以每隔1秒监控指定进程的堆信息5次。
这些术语解释了jstat输出的列的含义:S0C、S1C、S0U、S1U、EC、EU、OC、OU、PC、PU、YGC、YGCT、FGC、FGCT、GCT、NGCMN、NGCMX、NGC、OGCMN、OGCMX、OGC、PGCMN、PGCMX、PGC、S0、S1、E、O、P、S0CMX、S1CMX、ECMX、DSS、TT、MTT。
jmap是JVM内存映像工具,用于打印某个Java进程内存内的所有‘对象’的情况。命令格式为:jmap [ option ] pid。常用的参数包括:-dump:[live,]format=b,file=使用二进制形式输出JVM的Heap内容到文件;-histo[:live]打印每个class的实例数目、内存占用和类全名信息;-F强迫模式,即使pid没有响应也使用dump或histo参数。例如:jmap -dump:live,format=b,file=data.hprof 1796可以生成指定进程的堆内存映像。
jhat是JVM堆转储快照分析工具,用于对Java heap进行离线分析。它可以对不同虚拟机中导出的heap信息文件进行分析,如Linux上导出的文件可以在Windows上分析。命令格式为:jhat dumpfile。例如:jhat data.hprof可以分析生成的堆内存映像。
2024-12-14