jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小。
命令格式:
jmap [options] pid-dump:[live,]format=b,file=<filename>
--dump堆到文件,live指明是活着的对象,file指定文件名
因为在dump:live前会进行full gc,因此不加live的堆大小要大于加live堆的大小
-finalizerinfo 打印等待回收对象的信息 -heap 打印堆总结 -histo[:live] 打印堆的对象统计,包括对象数、内存大小等等 -permstat 打印java堆perm区的classloader统计 -F 强制,在jmap -dump或jmap -histo中使用,如果pid没有相应的回复-J 提供jvm选项,如:-J-Xms256m
jmap(JVM Memory Map):作用一方面是获取dump文件(堆转储快照文件,二进制文件),它还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。
开发人员可以在控制台输入命令"jmap -help"查阅jmap工具的具体使用方式和一些标准选项配置。
它的基本使用语法为:
其中option包括:
说明:这些参数和linux下输入显示的命令多少会有不同,包括也受jdk版本的影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)