当前位置:网站首页 > 技术博客 > 正文

java内存分析工具 jsate



JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。

jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和老年代的详细信息,如当前使用率、当前使用的是哪种收集器等。

option:选项参数,不可同时使用多个选项参数。

pid:Java进程id。

executable:产生核心dump的Java可执行文件。

core:需要打印配置信息的核心文件。

remote-hostname-or-ip:远程调试的主机名或ip。

server-id:可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标示服务器。

heap:显示Java堆详细信息;

histo:线下堆中对象的统计信息;

clstats:Java堆中内存的类加载器的统计信息;

finalizerinfo:显示在F-Queue队列等待Finlizer线程执行finalizer方法的对象;

dump:生成堆转储快照;

F:当-dump没有响应时,强制生成dump快照;

所有测试基于如下JDK版本:

dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名。

dump.hprof这个文件可以通过eclipse的打开:

打印heap的概要信息,GC使用的算法,heap的配置和使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况。

打印等待回收的对象信息。

Number of objects pending for finalization:0 说明当前F-Queue队列中并没有等待Finalizer线程执行finalizer方法的对象。

打印堆的对象统计,包括对象数、内存大小等。jmap -histo:live这个命令执行,JVM会先触发gc,然后再统计信息。

第一列:编号id

第二列:实例个数

第三列:所有实例大小

第四列:类名

打印Java类加载器的智能统计信息,对于每个类加载器而言,对于每个类加载器而言,它的名称,活跃度,地址,父类加载器,它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。  

强制模式。如果指定的pid没有响应,请使用jmap -dump或jmap -histo选项。此模式下,不支持live子选项。

比如:

转载于:https://www.cnblogs.com/lujiango/p/9002270.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101674.html原文链接:

版权声明


相关文章:

  • 实时计算与流式计算2024-11-30 19:29:59
  • lspci命令查看详细信息2024-11-30 19:29:59
  • qfile.flush2024-11-30 19:29:59
  • visual studio2010专业版产品密钥2024-11-30 19:29:59
  • multimap和map区别2024-11-30 19:29:59
  • 01背包问题c++实现2024-11-30 19:29:59
  • 背包问题代码2024-11-30 19:29:59
  • 杜邦树脂和陶氏树脂对比2024-11-30 19:29:59
  • linux udp mtu2024-11-30 19:29:59
  • 软件发布流程图2024-11-30 19:29:59