排查Java的内存问题(6)

排查Java的内存问题

这个快照显示JaxbClassLoader加载了类的重复副本,这是因为应用在为每个XML进行Java类绑定的时候,不恰当地创建了新的JAXBContext实例。

jcmd

jcmd <pid/classname> GC.class_stats能够提供被加载类的更详细信息,借助它,我们能够看到Metaspace每个类所占据的空间,如下面的示例输出所示。

jcmd 2752 GC.class_stats 2752:
Index  Super  InstBytes  KlassBytes  annotations  CpAll  MethodCount  Bytecodes  MethodAll  ROAll  RWAll  Total  ClassName
1   357  821632  536       0       352  2       13     616     184  1448 1632 java.lang.ref.WeakReference
2   -1   295272  480       0       0   0       0       0       24   584  608 [Ljava.lang.Object;
3   -1   214552  480       0       0   0       0       0       24   584  608 [C
4   -1   120400  480       0       0   0       0       0       24   584  608 [B
5   35   78912   624       0       8712 94       4623   26032   12136  24312  36448 java.lang.String
6   35   67112   648       0       19384  130     4973   25536   16552  30792  47344 java.lang.Class
7   9   24680   560       0       384  1       10     496     232  1432 1664 java.util.LinkedHashMap$Entry
8   -1   13216   480       0       0   0       0       0       48   584  632 [Ljava.lang.String;
9   35   12032   560       0       1296 7       149     1520   880  2808 3688 java.util.HashMap$Node
10  -1   8416   480       0       0   0       0       0       32   584  616 [Ljava.util.HashMap$Node;
11  -1   6512   480       0       0   0       0       0       24   584  608 [I
12  358  5688   720       0       5816 44       1696   8808   5920 10136  16056 java.lang.reflect.Field
13  319  4096   568       0       4464 55       3260   11496   7696 9664 17360 java.lang.Integer
14  357  3840   536       0       584  3       56     496     344  1448 1792 java.lang.ref.SoftReference
15  35   3840   584       0       1424 8       240     1432   1048 2712 3760 java.util.Hashtable$Entry
16  35   2632   736       368     8512 74       2015   13512   8784 15592  24376 java.lang.Thread
17  35   2496   504       0       9016 42       2766   9392   6984 12736  19720 java.net.URL
18  35   2368   568       0       1344 8       223     1408   1024 2616 3640 java.util.concurrent.ConcurrentHashMap$Node
…<snip>…
577 35   0       544       0       1736 3       136     616     640  2504 3144 sun.util.locale.provider.SPILocaleProviderAdapter$1
578 35   0       496       0       2736 8       482     1688   1328 3848 5176 sun.util.locale.provider.TimeZoneNameUtility
579 35   0       528       0       776  3       35     472     424  1608 2032 sun.util.resources.LocaleData$1
580 442  0       608       0       1704 10       290     1808   1176 3176 4352 sun.util.resources.OpenListResourceBundle
581 580  0       608       0       760  5       70     792     464  1848 2312 sun.util.resources.TimeZoneNamesBundle
           1724488  357208     1536   1117792 7754     311937  1527952 1014880 2181776 3196656 Total
             53.9%   11.2%     0.0%   35.0% -       9.8%   47.8%   31.7%  68.3%  100.0%
Index  Super  InstBytes  KlassBytes  annotations  CpAll  MethodCount  Bytecodes  MethodAll  ROAll  RWAll  Total  ClassName

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8897945a0be00fadb00880f35eefe05e.html