jvm调优之jmap

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/qq2430/article/details/82318505

概要

jmap [options] pid

  • options:命令行选项
  • pid:进程ID

jmap命令可以查看堆内存的详细情况,以及生成heap dump文件等。本文使用的是JDK10,不同版本间可能存在差异。

options

-clstats:查看Java堆的类加载器统计信息。

[root@izbp1chtb8a3vd2mzvuawlz /]# jmap -clstats 11457|more
Index Super InstBytes KlassBytes annotations    CpAll MethodCount Bytecodes MethodAll    ROAll    RWAll    Total ClassName
    1    -1   3529760        472           0        0           0         0         0       24      584      608 [B
    2    -1   2642400        472           0        0           0         0         0       24      584      608 [C
    3    12   1067496        584         128    13064         103      4108     59688    17416    57304    74720 java.lang.String
    4    12    863280        640           0    21632         132      5437     73064    23488    73664    97152 java.lang.Class
    5    12    742432        560           0     1360           9       213      2760     1488     3528     5016 java.util.concurrent.ConcurrentHashMap$Node
    6    -1    428368        472           0        0           0         0         0       24      584      608 [Ljava.lang.Object;
    7    12    394752        552           0     1384           7       149      2224     1152     3328     4480 java.util.HashMap$Node
    8  3915    336160       1160           0     6768          45      1107     24896     6296    27256    33552 java.lang.reflect.Method
    9    -1    277640        472           0        0           0         0         0       32      584      616 [Ljava.util.HashMap$Node;
   10    -1    261728        472           0        0           0         0         0       24      584      608 [I

-finalizerinfo: 查看在F-Queue队列等待执行finalizer方法的对象

[root@izbp1chtb8a3vd2mzvuawlz /]# jmap -finalizerinfo 11457
No instances waiting for finalization found

-histo[:live]:查看Java堆中的对象的信息

[root@izbp1chtb8a3vd2mzvuawlz /]# jmap -histo:live 11457|more
 num     #instances         #bytes  class name (module)
-------------------------------------------------------
   1:         45923        3529760  [B (java.base@10.0.2)
   2:          1034        2642400  [C (java.base@10.0.2)
   3:         44479        1067496  java.lang.String (java.base@10.0.2)
   4:          7247         863280  java.lang.Class (java.base@10.0.2)
   5:         23201         742432  java.util.concurrent.ConcurrentHashMap$Node (java.base@10.0.2)
   6:          7868         428368  [Ljava.lang.Object; ([email protected])
   7:         12336         394752  java.util.HashMap$Node (java.base@10.0.2)
   8:          3820         336160  java.lang.reflect.Method (java.base@10.0.2)
   9:          3243         277640  [Ljava.util.HashMap$Node; ([email protected])
  10:          2832         261728  [I (java.base@10.0.2)

-dump dump-options:dump heap文件

[root@izbp1chtb8a3vd2mzvuawlz /]# jmap -dump:live,format=b,file=heap.bin 11457
Heap dump file created
  • live:指定时,仅保存存活的对象。

  • format=b: 以二进制格式生成文

  • file=filename: 生成的文件名

参考文档:https://docs.oracle.com/javase/10/tools/jmap.htm

猜你喜欢

转载自blog.csdn.net/qq2430/article/details/82318505