0
点赞
收藏
分享

微信扫一扫

01 记录一次 TaskManager 中 old 被全部占用的问题


前言

问题的上下文如下, 再给定的 flink003 节点上面的 TaskManager 节点对应的 vm old 几乎被占用完了 
另外还有一个明显的问题是 fgc 的次数明显异常, ygc 才八千次, fgc 就六千次了 ?
我们这里的主题主要是 探索一下 主要占用 old 的对象都是什么 ?, 以及一个 大致的原因 

[root@ecs-flink-003 ~]# jps
6915 WrapperSimpleApp
583516 Main
1240520 TaskManagerRunner
997810 Jps
[root@ecs-flink-003 ~]# jstat -gcutil 1240520
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00   0.00  59.54  99.43  95.23  89.37   7874   41.102  5832 1268.308 1309.410
[root@ecs-flink-003 ~]# jmap -heap 1240520
Attaching to process ID 1240520, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.60-b23
using thread-local object allocation.
Parallel GC with 13 thread(s)
Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 9374269440 (8940.0MB)
   NewSize                  = 3124756480 (2980.0MB)
   MaxNewSize               = 3124756480 (2980.0MB)
   OldSize                  = 6249512960 (5960.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 5494538240 (5240.0MB)
   G1HeapRegionSize         = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
   capacity = 2886729728 (2753.0MB)
   used     = 1718836800 (1639.2105102539062MB)
   free     = 1167892928 (1113.7894897460938MB)
   59.54269924641868% used
From Space:
   capacity = 19922944 (19.0MB)
   used     = 0 (0.0MB)
   free     = 19922944 (19.0MB)
   0.0% used
To Space:
   capacity = 119013376 (113.5MB)
   used     = 0 (0.0MB)
   free     = 119013376 (113.5MB)
   0.0% used
PS Old Generation
   capacity = 6249512960 (5960.0MB)
   used     = 6214046888 (5926.176918029785MB)
   free     = 35466072 (33.823081970214844MB)
   99.43249862466082% used
27319 interned Strings occupying 2961728 bytes.

查找占用 old 的对象

jmap histo $pid 列出占用空间对象的 top10
可以看到的是, 整个 heap 9g, 这里 char[] 占用了 5.5g ?
接下来看一下 这都是一些什么字符串 
jmap histo $pid 列出占用空间对象的 top10 

num     #instances         #bytes  class name
----------------------------------------------
   1:       1381831     5460743720  [C
   2:        167040     2576855560  [B
   3:       1180994       28343856  java.lang.String
   4:         87163       28120712  [I
   5:        625826       20026432  java.util.HashMap$Node
   6:        566321       18122272  java.util.ArrayList$Itr
   7:        401111       17644992  [Ljava.lang.Object;
   8:        407890       16315600  java.util.TreeMap$Entry
   9:         74192       10258376  [Ljava.util.HashMap$Node;
  10:        155426        7460448  java.util.HashMap

jmap dump 一下堆空间信息 
jhat 分析一下 char[] 的实例, 可以看到 73w 的 char[] 的 oop 

01 记录一次 TaskManager 中 old 被全部占用的问题_class

获取 top150, 可以看到 前面有 132 个占用空间为 37410664 的字符串[合计 35.6M], 随机抽取一个查看对应的 java.lang.String 的引用  

(0x6113f7818,37410664)
(0x6823e7450,37410664)
(0x6227dcf10,37410664)
(0x61c793270,37410664)
(0x6c4f400b0,37410664)
(0x5daafa468,37410664)
(0x6742d9968,37410664)
(0x5be2ccbd8,37410664)
(0x5d6262ba0,37410664)
(0x5d86294e8,37410664)
(0x6b1605990,37410664)
(0x5d3e02f48,37410664)
(0x6ad9e71b8,37410664)
(0x6b5ddd5e0,37410664)
(0x6b39cfa28,37410664)
(0x5bbdceca0,37410664)
(0x7291583b8,37410664)
(0x6be14aea0,37410664)
(0x71892fe80,37410664)
(0x6c050df58,37410664)
(0x6c290da48,37410664)
(0x6bbd0cd60,37410664)
(0x724908728,37410664)
(0x7434e53b0,37410664)
(0x7410df180,37410664)
(0x7164cb2b0,37410664)
(0x7140c61f8,37410664)
(0x726cb5e90,37410664)
(0x6068aa018,37410664)
(0x60449ed78,37410664)
(0x67dc82888,37410664)
(0x6a6c70918,37410664)
(0x759050368,37410664)
(0x5ee02fba8,37410664)
(0x756c2f0d0,37410664)
(0x5f042e668,37410664)
(0x5e44157c8,37410664)
(0x705c00000,37410664)
(0x5e67c2f30,37410664)
(0x750bb8d00,37410664)
(0x5dfbb5960,37410664)
(0x5c0f8c5a0,37410664)
(0x6ebb7eda8,37410664)
(0x5e8b70fe8,37410664)
(0x73af40540,37410664)
(0x60ba43330,37410664)
(0x6986117b0,37410664)
(0x69d9fbb20,37410664)
(0x5a5de3c58,37410664)
(0x6155b2798,37410664)
(0x68d1a4140,37410664)
(0x61795ff00,37410664)
(0x6dc95b450,37410664)
(0x646157c70,37410664)
(0x6d0948630,37410664)
(0x6ded08bb8,37410664)
(0x6485053d8,37410664)
(0x6418f83f8,37410664)
(0x6d2cf5d98,37410664)
(0x6f30f5408,37410664)
(0x6670efef0,37410664)
(0x6cc0e87a8,37410664)
(0x59fcbe430,37410664)
(0x6e10b6320,37410664)
(0x64a8b2b40,37410664)
(0x6f54a3aa0,37410664)
(0x6d50a3500,37410664)
(0x66949d760,37410664)
(0x6f789c870,37410664)
(0x66288fde0,37410664)
(0x64cc602a8,37410664)
(0x66b84aec8,37410664)
(0x5ffc3ed58,37410664)
(0x5b641a758,37410664)
(0x5b87c7ec0,37410664)
(0x74bfb1b48,37410664)
(0x6e93924d0,37410664)
(0x66e7683b0,37410664)
(0x74e35f2b0,37410664)
(0x73632ec70,37410664)
(0x6c771b818,37410664)
(0x5f3b08b80,37410664)
(0x7386dc3d8,37410664)
(0x5f82d3118,37410664)
(0x5f5ec5ca0,37410664)
(0x7092bd528,37410664)
(0x7026b3e18,37410664)
(0x7302a5180,37410664)
(0x6e6ea31d0,37410664)
(0x72de9c4a8,37410664)
(0x598295828,37410664)
(0x59a693d70,37410664)
(0x71fa52ec0,37410664)
(0x624e3fe20,37410664)
(0x71d63b2c0,37410664)
(0x67a630c70,37410664)
(0x65a217480,37410664)
(0x657e140f8,37410664)
(0x655a0a5c0,37410664)
(0x595e042c8,37410664)
(0x5ab9fd1a0,37410664)
(0x65c5d1ec0,37410664)
(0x70f1ceb80,37410664)
(0x70cdc6168,37410664)
(0x6fd5be660,37410664)
(0x63c1ab370,37410664)
(0x6781aada8,37410664)
(0x5addaa908,37410664)
(0x6331a90b0,37410664)
(0x5c8da28c0,37410664)
(0x5d05a04a0,37410664)
(0x5c6994678,37410664)
(0x5c4593380,37410664)
(0x5b0169d68,37410664)
(0x635556818,37410664)
(0x65353a8a8,37410664)
(0x637903f80,37410664)
(0x745d01058,37410664)
(0x5a34e5700,37410664)
(0x686ce2fa8,37410664)
(0x6f08d5fe8,37410664)
(0x639cb16e8,37410664)
(0x62c4964a8,37410664)
(0x6a346fc38,37410664)
(0x692c5d268,37410664)
(0x60f04a0b0,37410664)
(0x6848428b0,37410664)
(0x75b841180,37410664)
(0x68002fff0,37410664)
(0x620416630,37410664)
(0x69500a9d0,37410664)
(0x6a1002310,37410664)
(0x650fdbd00,263952)
(0x5c07c42f8,263952)
(0x6f0789308,263952)
(0x6c7381e28,263952)
(0x608f3df20,263952)
(0x650efeff8,263952)
(0x608ef4c98,263952)
(0x6f06ddef8,263952)
(0x6766d2c48,263952)
(0x5c06bf0b8,263952)
(0x70caaada0,263952)
(0x5be27f1f0,263952)
(0x608e79610,263952)
(0x6c4e1fa80,263952)
(0x5da9eed50,263952)
(0x5eb1d1400,263952)
(0x5eb144398,263952)
(0x74ad0e4e0,263952)

可以找到一个 LinkedHashMap, 其中某一个 key 为 "extract-rule.xml" 的 entry 即为我们这里的这个 大对象 

01 记录一次 TaskManager 中 old 被全部占用的问题_classloader_02

代码中 track 一下 extract-rule.xml 加载的地方, StartJobEngineApp 初始化的地方 
后面将 "extract-rule.xml" → 文件内容, transfer 到了 configFileBase64Map 里面, 对应的就是我们上面看到的这个 LinkedHashMap 

那么这个 "extract-rule.xml" 为什么会被加载 132 次呢 ? 又为什么没有被 gc 掉 ?

继续往后面看, 会看到 SOURCE, TRANSFORMATION, SINK 等几个 operator 都持有一份 "extract-rule.xml" 的内容 

也就是一个 job, 假设只有最简单的 SOURCE → 1个TRANSFORMATION → SINK 的步骤, 那

01 记录一次 TaskManager 中 old 被全部占用的问题_unload_03

么这个 "extract-rule.xml" 的内容 会被存储 4次 

这个 LinkedHashMap 是被存储在 ConfigFileObjectService 中

最开始的 usercode 中的 ConfigFileObjectService 是 classloader 加载创建的, 后面的 SOURCE/TRANSFORMATION/SINK 中的 ConfigFileObjectService  是算子需要的上下文, 由 usercode 传递过来 反序列化生成的 

以 MyFlinkKafkaConsumerXSource 为例, 看一下 这一系列引用关系  

01 记录一次 TaskManager 中 old 被全部占用的问题_flink_04

以 TransFieldToStandardXCommand 为例, 会被封装到 PreprocessProcessFuncImpl 中与 flink 进行交互, 引用关系如下 

 

01 记录一次 TaskManager 中 old 被全部占用的问题_sed_05

以 EsDeployDefImpXSink 为例, 看一下 这一系列引用关系  

那么 我这里的情况是从 flink 的控制台已经看不到任何的 job 了, 为什么 这些对象还被强引用了 ? 
我们回到 jmap -histo 的结果, 可以找到 35 个 com.HelloWorld.flink.common.ConfigFileObjectService 的 class, 有的有 4 个 instance, 有的有 5个, 有的有 6个 
另外还有 35 个 org.apache.flink.util.ChildFirstClassLoader 这里可以大致判断出 flink 的 job 之间的隔离大致是通过 classloader 进行隔离的 

num     #instances         #bytes  class name
----------------------------------------------
 592:            35           3360  org.apache.flink.util.ChildFirstClassLoader
1724:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1725:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1726:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1727:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1728:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1729:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1836:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1837:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1838:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1839:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1840:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1841:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1842:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1843:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1844:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1845:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1846:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1847:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1848:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1849:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1850:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1851:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1852:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
2068:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2069:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2070:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2071:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2072:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2073:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2074:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2075:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2076:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2077:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2078:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2079:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
Total       3089420     7578685856

flink 的 /jar/$jarId/run 的执行过程

我们上面 可以大致判断出 flink 的 job 之间的隔离大致是通过 classloader 进行隔离的, 但是 还需要实锤 
flink rest api 这部分是自己基于 netty 开放的服务, 我们这里的 /jar/$jarId/run 处理请求的是 JarRunHandler 
这里我们需要关注的是当前线程是 Flink-DispatcherRestEndpoint-thread-*, 是 jobManager 创建的时候开放 Rest 服务的时候创建的一组线程池, 用于执行 XXHandler 里面的一部分异步处理 
当前线程的 contextClassloader 是一个 ChildFirstClassloader, 另外加载 mainClazz 的也是这个 ChildFirstClassloader 
这部分的代码体现也可以再这上面找到, 具体选择 classloader 也有策略控制, 这里不在赘述, 总之我们这里的情况是 选择的是 ChildFirstClassloader 

01 记录一次 TaskManager 中 old 被全部占用的问题_classloader_06

堆栈信息再往前推进一些, 可以看到 Flink-DispatcherRestEndpoint-thread-* 是执行 usercode 的时候将 contextClassloader 换成了 ChildFirstClassloader, 执行完成将 contextClassloader
 切换回去, 常见的操作 

01 记录一次 TaskManager 中 old 被全部占用的问题_flink_07

这里可以看到 job 中 usercode 这一部分代码的执行是通过 classloader 进行隔离的 

TaskManager 这边, 同一个 jvm 同一个 job 会对应同一个 ChildFirstClassLoader, 创建是 Task 初始化的时候创建的 

为什么 job 已经执行完成了, ConfigFileObjectService 相关的对象没有被回收?
抽取一个 ConfigFileObjectService 查看一下, 引用这个对象的只有 ConfigFileObjectService.uniqueInstance, 是一个静态字段, 意味着需要回收 这个 ConfigFileObjectService  对象, 是需要卸载类 ConfigFileObjectService 
根据规范 卸载类的条件是 其对应的 classloadaer 被回收 

01 记录一次 TaskManager 中 old 被全部占用的问题_class_08

我们抽取一个 ChildFirstClassLoader, 来查看一下, 可以明显看到的是还有 诸多 java.lang.Thread 还引用了当前 ConfigFileObjectService 
gc 的时候, java.lang.Thread oop 本身以及其 stack 是 gc roots 的一部分, 既然这么多 alive 的 java.lang.Thread 还引用着 ChildFirstClassLoader, classloader 是被 gc 不掉 
当然 不排除其他强应用, 充分不必要 条件

01 记录一次 TaskManager 中 old 被全部占用的问题_classloader_09

一个模拟的 case

这里根据场景 模拟了一个 测试用例, 依赖的 jar为 flink-core 使用 ChildFirstClassLoader 
Test18ChildFirstClassloader 

package com.hx.test;
import org.apache.flink.util.ChildFirstClassLoader;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
public class Test18ChildFirstClassloader {
    // Test18ChildFirstClassloader
    // -Xmx128M -XX:+UseSerialGC -verbose:class
    public static void main(String[] args) throws Exception {
        File classFile = new File("D:\\WorkStations\\IdeaWorkStations\\HelloWorld\\target\\classes");
        URL[] classpathes = new URL[]{
                classFile.toURI().toURL()
        };
        // create many namespace by classloader
        int namespaceCount = 50;
//        List<ChildFirstClassLoader> classloaderList = new ArrayList<>();
        for (int i = 0; i < namespaceCount; i++) {
            ChildFirstClassLoader classloader = new ChildFirstClassLoader(
                    classpathes,
                    Test18ChildFirstClassloader.class.getClassLoader(),
                    new String[]{}
            );
//            classloaderList.add(classloader);
            ClassLoader oldContextClassloader = Thread.currentThread().getContextClassLoader();
            Thread.currentThread().setContextClassLoader(classloader);
            try {
                Class clazz = classloader.loadClass("com.hx.test.Test18StaticHolder");
                Method method = clazz.getDeclaredMethod("main", String[].class);
                method.invoke(null, new Object[]{
                        new String[]{"1", "2"}
                });
            } finally {
                Thread.currentThread().setContextClassLoader(oldContextClassloader);
            }
        }
        System.gc();
        System.in.read();
    }
}

Test18StaticHolder 

package com.hx.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
// Test18StaticHolder
public class Test18StaticHolder {
    private static Test18StaticHolder INSTANCE;
    public static String HOLDER = null;
    static {
        INSTANCE = new Test18StaticHolder();
        try {
            HOLDER = readContent("D:\\WorkStations\\IdeaWorkStations\\Tmp\\06_jysy_logs\\whale-client.log.0");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // Test18StaticHolder
    public static void main(String[] args) {
        System.out.println(" Test18StaticHolder proceed ... ");
        new Thread(() -> {
            // do biz
            sleep(10_000);
        }, "Test18StaticHolderAliveThread").start();
    }
    // readContent
    public static String readContent(String path) throws Exception {
        BufferedReader reader = new BufferedReader(new FileReader(new File(path)));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\r\n");
        }
        return sb.toString();
    }
    // sleep
    public static void sleep(long sleepInMs) {
        try {
            Thread.sleep(sleepInMs);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

jmap -histo $pid

num     #instances         #bytes  class name
----------------------------------------------
   1:          4418      125602984  [C
   2:           189         797560  [I
   3:          4134          99216  java.lang.String
   4:           842          95856  java.lang.Class
   5:          1391          74504  [Ljava.lang.Object;
   6:           156          64560  [B
   7:           836          33440  java.util.TreeMap$Entry
   8:           268          25696  [Ljava.util.HashMap$Node;
   9:           689          22048  java.util.HashMap$Node
  10:            58          21808  java.lang.Thread
  11:           284          18176  java.net.URL
  12:           168          13440  [Ljava.util.WeakHashMap$Entry;
  13:           272          13056  java.util.HashMap
  14:           231          12936  java.lang.invoke.MemberName
  15:           279          11160  java.lang.ref.SoftReference
  16:           109          10464  java.util.jar.JarFile$JarFileEntry
  17:           244           9760  java.util.LinkedHashMap$Entry
  18:           300           9600  java.util.concurrent.ConcurrentHashMap$Node
  19:           396           9504  java.util.LinkedList$Node
  20:           226           9040  java.lang.ref.Finalizer
  21:           252           8928  [Ljava.lang.String;
  22:           168           8064  java.util.WeakHashMap
  23:           117           7488  java.util.jar.JarFile
  24:           141           6768  sun.misc.URLClassPath$JarLoader
  25:           119           6664  sun.nio.cs.UTF_8$Encoder
  26:           202           6464  java.util.LinkedList
  27:           196           6272  java.lang.invoke.LambdaForm$Name
  28:           256           6144  java.lang.Long
  29:           244           5856  java.io.ExpiringCache$Entry
  30:            94           5640  [Ljava.lang.ref.SoftReference;
  31:           174           5568  java.lang.ref.ReferenceQueue
  32:           166           5312  java.util.Hashtable$Entry
  33:           128           5120  java.lang.invoke.MethodType
  34:           103           4944  java.util.zip.Inflater
  35:            48           4608  org.apache.flink.util.ChildFirstClassLoader
  36:           110           4400  java.security.AccessControlContext
  37:           123           4144  [Ljava.lang.Class;
  38:            55           4128  [Ljava.util.Hashtable$Entry;
  39:           129           4128  java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
  40:           256           4096  java.lang.Byte
  41:           256           4096  java.lang.Integer
  42:           256           4096  java.lang.Short
  43:           102           4080  java.security.ProtectionDomain
  44:           169           4056  java.util.ArrayList
  45:           117           3744  java.util.zip.ZipCoder
  46:           111           3552  java.lang.invoke.DirectMethodHandle
  47:           204           3264  java.lang.Object
  48:           102           3264  java.util.Vector
  49:           101           3232  java.security.CodeSource
  50:            68           3056  [Ljava.lang.invoke.LambdaForm$Name;
  51:            63           3024  java.lang.invoke.LambdaForm
  52:            28           2912  [Ljava.lang.invoke.MethodHandle;
  53:           176           2816  java.lang.ref.ReferenceQueue$Lock
  54:           117           2808  java.util.ArrayDeque
  55:            49           2744  java.lang.invoke.MethodTypeForm
  56:             7           2544  [Ljava.util.concurrent.ConcurrentHashMap$Node;
  57:            52           2496  java.util.Hashtable
  58:           103           2472  java.util.zip.ZStreamRef
  59:            50           2400  sun.misc.URLClassPath
  60:            96           2304  java.lang.invoke.LambdaForm$NamedFunction
  61:            95           2280  [Ljava.security.ProtectionDomain;
  62:           128           2048  java.lang.Character
  63:            62           1984  java.io.File
  64:            38           1824  sun.util.locale.LocaleObjectCache$CacheEntry
  65:            52           1664  java.security.Permissions
  66:           102           1632  [Ljava.security.Principal;
  67:            51           1632  java.io.FilePermission
  68:           102           1632  java.security.ProtectionDomain$Key
  69:            51           1632  java.util.Stack
  70:            50           1600  java.lang.invoke.BoundMethodHandle$Species_L
  71:            18           1440  java.lang.reflect.Constructor
  72:            51           1224  java.io.FilePermissionCollection
  73:            49           1176  sun.misc.URLClassPath$FileLoader
  74:            23           1104  java.nio.HeapCharBuffer
  75:             1           1040  [Ljava.lang.Byte;
  76:             1           1040  [Ljava.lang.Integer;
  77:             1           1040  [Ljava.lang.Long;
  78:             1           1040  [Ljava.lang.Short;
  79:             1           1040  [[C
  80:            26           1040  java.io.ObjectStreamField
  81:            27            864  com.intellij.rt.debugger.agent.CaptureAgent$InstrumentPoint
  82:            50            800  java.util.HashSet
  83:            33            792  java.lang.StringBuilder
  84:            19            760  sun.util.locale.BaseLocale$Key
  85:             9            656  [S
  86:             3            624  [Ljava.lang.invoke.LambdaForm;
  87:            19            608  java.util.Locale
  88:            19            608  sun.util.locale.BaseLocale
  89:             9            576  java.util.concurrent.ConcurrentHashMap
  90:            10            560  sun.invoke.util.Wrapper
  91:             1            528  [Ljava.lang.Character;
  92:            13            520  java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle
  93:             6            456  [Lsun.invoke.util.Wrapper;
  94:            19            456  java.util.Locale$LocaleKey
  95:            13            416  java.lang.invoke.SimpleMethodHandle
  96:            17            408  java.util.jar.Attributes$Name
  97:            10            400  java.lang.invoke.DirectMethodHandle$Accessor
  98:             1            384  java.lang.ref.Finalizer$FinalizerThread
  99:             6            384  java.nio.DirectByteBuffer
 100:             1            376  java.lang.ref.Reference$ReferenceHandler
 101:            14            336  java.lang.invoke.LambdaFormEditor$Transform$Kind
 102:             6            336  java.nio.DirectLongBufferU
 103:            10            320  java.lang.OutOfMemoryError
 104:            10            320  java.lang.StackTraceElement
 105:            13            312  java.lang.RuntimePermission
 106:            11            304  [Ljava.io.ObjectStreamField;
 107:             2            304  [Ljava.lang.Thread;
 108:            12            288  java.lang.invoke.Invokers
 109:             9            288  jdk.internal.org.objectweb.asm.Type
 110:            12            288  sun.misc.MetaIndex
 111:             8            248  [Ljava.lang.invoke.LambdaForm$BasicType;
 112:             6            240  [Ljava.lang.invoke.BoundMethodHandle$SpeciesData;
 113:             5            240  java.util.TreeMap
 114:             4            224  java.lang.Package
 115:             9            216  sun.reflect.NativeConstructorAccessorImpl
 116:             7            208  [Ljava.lang.invoke.LambdaForm$NamedFunction;
 117:             5            200  java.lang.invoke.BoundMethodHandle$SpeciesData
 118:             5            200  java.util.WeakHashMap$Entry
 119:             6            192  java.lang.invoke.LambdaForm$BasicType
 120:             8            192  java.lang.invoke.MethodHandleImpl$Intrinsic
 121:             2            176  java.lang.reflect.Method
 122:             7            168  java.net.NetPermission
 123:             4            160  java.io.FileDescriptor
 124:             3            144  java.nio.HeapByteBuffer
 125:             3            144  java.util.Properties
 126:             6            144  sun.misc.PerfCounter
 127:             9            144  sun.reflect.DelegatingConstructorAccessorImpl
 128:             2            128  java.io.ExpiringCache$1
 129:             3            120  java.lang.invoke.BoundMethodHandle$Species_LL
 130:             2            112  [Ljava.lang.invoke.MethodType;
 131:             2             96  java.lang.ThreadGroup
 132:             3             96  java.lang.ThreadLocal$ThreadLocalMap$Entry
 133:             3             96  java.security.BasicPermissionCollection
 134:             4             96  sun.misc.JarIndex
 135:             1             96  sun.misc.Launcher$AppClassLoader
 136:             2             96  sun.nio.cs.StreamEncoder
 137:             3             88  [Ljava.lang.StackTraceElement;
 138:             1             88  sun.misc.Launcher$ExtClassLoader
 139:             1             80  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
 140:             2             80  java.io.BufferedWriter
 141:             2             80  java.io.ExpiringCache
 142:             2             80  java.lang.ClassLoader$NativeLibrary
 143:             5             80  java.lang.ThreadLocal
 144:             2             80  java.lang.invoke.MethodHandleImpl$AsVarargsCollector
 145:             2             80  sun.nio.cs.UTF_8$Decoder
 146:             1             72  [Ljava.lang.invoke.LambdaFormEditor$Transform$Kind;
 147:             3             72  java.security.SecurityPermission
 148:             3             72  java.util.Collections$SynchronizedSet
 149:             3             72  java.util.concurrent.atomic.AtomicLong
 150:             2             64  [J
 151:             2             64  java.io.FileInputStream
 152:             2             64  java.io.FileOutputStream
 153:             2             64  java.io.PrintStream
 154:             2             64  java.lang.ClassValue$Entry
 155:             2             64  java.lang.VirtualMachineError
 156:             2             64  java.lang.ref.ReferenceQueue$Null
 157:             1             56  [[I
 158:             1             56  java.lang.invoke.LambdaFormEditor$Transform
 159:             1             56  java.net.SocketPermission
 160:             1             48  [Ljava.lang.invoke.MethodHandleImpl$Intrinsic;
 161:             2             48  java.io.BufferedOutputStream
 162:             1             48  java.io.BufferedReader
 163:             2             48  java.io.File$PathStatus
 164:             2             48  java.io.OutputStreamWriter
 165:             1             48  java.lang.ProcessEnvironment
 166:             1             48  java.lang.invoke.BoundMethodHandle$Species_L4
 167:             2             48  java.lang.invoke.MethodHandles$Lookup
 168:             2             48  java.lang.reflect.ReflectPermission
 169:             2             48  java.nio.charset.CoderResult
 170:             3             48  java.nio.charset.CodingErrorAction
 171:             2             48  java.util.Collections$SetFromMap
 172:             3             48  java.util.concurrent.atomic.AtomicInteger
 173:             2             48  sun.instrument.TransformerManager
 174:             2             48  sun.misc.NativeSignalHandler
 175:             2             48  sun.misc.Signal
 176:             1             48  sun.nio.cs.StreamDecoder
 177:             2             40  [Lsun.instrument.TransformerManager$TransformerInfo;
 178:             1             40  [[Ljava.lang.invoke.LambdaForm$Name;
 179:             1             40  java.io.BufferedInputStream
 180:             1             40  java.util.IdentityHashMap
 181:             1             40  sun.nio.cs.StandardCharsets$Aliases
 182:             1             40  sun.nio.cs.StandardCharsets$Cache
 183:             1             40  sun.nio.cs.StandardCharsets$Classes
 184:             1             40  sun.nio.cs.ext.ExtendedCharsets
 185:             1             32  [Ljava.lang.OutOfMemoryError;
 186:             1             32  [Ljava.lang.ThreadGroup;
 187:             2             32  com.intellij.rt.debugger.agent.CaptureAgent$ParamKeyProvider
 188:             1             32  java.io.WinNTFileSystem
 189:             1             32  java.lang.ArithmeticException
 190:             2             32  java.lang.Boolean
 191:             1             32  java.lang.NullPointerException
 192:             2             32  java.nio.ByteOrder
 193:             1             32  java.util.Collections$UnmodifiableMap
 194:             1             32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
 195:             1             32  sun.instrument.InstrumentationImpl
 196:             2             32  sun.net.www.protocol.jar.Handler
 197:             1             32  sun.nio.cs.StandardCharsets
 198:             1             24  [Ljava.io.File$PathStatus;
 199:             1             24  [Ljava.lang.ClassValue$Entry;
 200:             1             24  [Ljava.net.URL;
 201:             1             24  [Lsun.launcher.LauncherHelper;
 202:             1             24  com.intellij.rt.debugger.agent.CaptureAgent$FieldKeyProvider
 203:             1             24  java.io.FileReader
 204:             1             24  java.lang.ClassValue$Version
 205:             1             24  java.lang.Double
 206:             1             24  java.lang.ThreadLocal$ThreadLocalMap
 207:             1             24  java.lang.invoke.MethodHandleImpl$4
 208:             1             24  java.lang.invoke.MethodType$ConcurrentWeakInternSet
 209:             1             24  java.security.AllPermissionCollection
 210:             1             24  java.util.BitSet
 211:             1             24  java.util.Collections$EmptyMap
 212:             1             24  java.util.Collections$UnmodifiableRandomAccessList
 213:             1             24  java.util.Locale$Cache
 214:             1             24  sun.instrument.TransformerManager$TransformerInfo
 215:             1             24  sun.launcher.LauncherHelper
 216:             1             24  sun.nio.cs.ISO_8859_1
 217:             1             24  sun.nio.cs.ThreadLocalCoders$1
 218:             1             24  sun.nio.cs.ThreadLocalCoders$2
 219:             1             24  sun.nio.cs.US_ASCII
 220:             1             24  sun.nio.cs.UTF_16
 221:             1             24  sun.nio.cs.UTF_16BE
 222:             1             24  sun.nio.cs.UTF_16LE
 223:             1             24  sun.nio.cs.UTF_8
 224:             1             24  sun.reflect.NativeMethodAccessorImpl
 225:             1             24  sun.util.locale.BaseLocale$Cache
 226:             1             16  [D
 227:             1             16  [F
 228:             1             16  [Ljava.lang.Throwable;
 229:             1             16  [Ljava.security.cert.Certificate;
 230:             1             16  [Z
 231:             1             16  com.hx.test.Test18StaticHolder
 232:             1             16  com.hx.test.Test18StaticHolder
 233:             1             16  com.hx.test.Test18StaticHolder
 234:             1             16  com.hx.test.Test18StaticHolder
 235:             1             16  com.hx.test.Test18StaticHolder
 236:             1             16  com.hx.test.Test18StaticHolder
 237:             1             16  com.hx.test.Test18StaticHolder
 238:             1             16  com.hx.test.Test18StaticHolder
 239:             1             16  com.hx.test.Test18StaticHolder
 240:             1             16  com.hx.test.Test18StaticHolder
 241:             1             16  com.hx.test.Test18StaticHolder
 242:             1             16  com.hx.test.Test18StaticHolder
 243:             1             16  com.hx.test.Test18StaticHolder
 244:             1             16  com.hx.test.Test18StaticHolder
 245:             1             16  com.hx.test.Test18StaticHolder
 246:             1             16  com.hx.test.Test18StaticHolder
 247:             1             16  com.hx.test.Test18StaticHolder
 248:             1             16  com.hx.test.Test18StaticHolder
 249:             1             16  com.hx.test.Test18StaticHolder
 250:             1             16  com.hx.test.Test18StaticHolder
 251:             1             16  com.hx.test.Test18StaticHolder
 252:             1             16  com.hx.test.Test18StaticHolder
 253:             1             16  com.hx.test.Test18StaticHolder
 254:             1             16  com.hx.test.Test18StaticHolder
 255:             1             16  com.hx.test.Test18StaticHolder
 256:             1             16  com.hx.test.Test18StaticHolder
 257:             1             16  com.hx.test.Test18StaticHolder
 258:             1             16  com.hx.test.Test18StaticHolder
 259:             1             16  com.hx.test.Test18StaticHolder
 260:             1             16  com.hx.test.Test18StaticHolder
 261:             1             16  com.hx.test.Test18StaticHolder
 262:             1             16  com.hx.test.Test18StaticHolder
 263:             1             16  com.hx.test.Test18StaticHolder
 264:             1             16  com.hx.test.Test18StaticHolder
 265:             1             16  com.hx.test.Test18StaticHolder
 266:             1             16  com.hx.test.Test18StaticHolder
 267:             1             16  com.hx.test.Test18StaticHolder
 268:             1             16  com.hx.test.Test18StaticHolder
 269:             1             16  com.hx.test.Test18StaticHolder
 270:             1             16  com.hx.test.Test18StaticHolder
 271:             1             16  com.hx.test.Test18StaticHolder
 272:             1             16  com.hx.test.Test18StaticHolder
 273:             1             16  com.hx.test.Test18StaticHolder
 274:             1             16  com.hx.test.Test18StaticHolder
 275:             1             16  com.hx.test.Test18StaticHolder
 276:             1             16  com.hx.test.Test18StaticHolder
 277:             1             16  com.hx.test.Test18StaticHolder
 278:             1             16  com.hx.test.Test18StaticHolder
 279:             1             16  com.hx.test.Test18StaticHolder$$Lambda$1/329611835
 280:             1             16  com.hx.test.Test18StaticHolder$$Lambda$10/1757676444
 281:             1             16  com.hx.test.Test18StaticHolder$$Lambda$11/1870647526
 282:             1             16  com.hx.test.Test18StaticHolder$$Lambda$12/2009787198
 283:             1             16  com.hx.test.Test18StaticHolder$$Lambda$13/466505482
 284:             1             16  com.hx.test.Test18StaticHolder$$Lambda$14/1615780336
 285:             1             16  com.hx.test.Test18StaticHolder$$Lambda$15/2094411587
 286:             1             16  com.hx.test.Test18StaticHolder$$Lambda$16/1216590855
 287:             1             16  com.hx.test.Test18StaticHolder$$Lambda$17/1122134344
 288:             1             16  com.hx.test.Test18StaticHolder$$Lambda$18/1413653265
 289:             1             16  com.hx.test.Test18StaticHolder$$Lambda$19/125622176
 290:             1             16  com.hx.test.Test18StaticHolder$$Lambda$2/1007251739
 291:             1             16  com.hx.test.Test18StaticHolder$$Lambda$20/342597804
 292:             1             16  com.hx.test.Test18StaticHolder$$Lambda$21/258754732
 293:             1             16  com.hx.test.Test18StaticHolder$$Lambda$22/1476394199
 294:             1             16  com.hx.test.Test18StaticHolder$$Lambda$23/348100441
 295:             1             16  com.hx.test.Test18StaticHolder$$Lambda$24/655381473
 296:             1             16  com.hx.test.Test18StaticHolder$$Lambda$25/1076496284
 297:             1             16  com.hx.test.Test18StaticHolder$$Lambda$26/1072601481
 298:             1             16  com.hx.test.Test18StaticHolder$$Lambda$27/1459672753
 299:             1             16  com.hx.test.Test18StaticHolder$$Lambda$28/1596000437
 300:             1             16  com.hx.test.Test18StaticHolder$$Lambda$29/1225439493
 301:             1             16  com.hx.test.Test18StaticHolder$$Lambda$3/853993923
 302:             1             16  com.hx.test.Test18StaticHolder$$Lambda$30/1845904670
 303:             1             16  com.hx.test.Test18StaticHolder$$Lambda$31/13329486
 304:             1             16  com.hx.test.Test18StaticHolder$$Lambda$32/517210187
 305:             1             16  com.hx.test.Test18StaticHolder$$Lambda$33/1776957250
 306:             1             16  com.hx.test.Test18StaticHolder$$Lambda$34/1273765644
 307:             1             16  com.hx.test.Test18StaticHolder$$Lambda$35/764577347
 308:             1             16  com.hx.test.Test18StaticHolder$$Lambda$36/422250493
 309:             1             16  com.hx.test.Test18StaticHolder$$Lambda$37/343965883
 310:             1             16  com.hx.test.Test18StaticHolder$$Lambda$38/2114650936
 311:             1             16  com.hx.test.Test18StaticHolder$$Lambda$39/540585569
 312:             1             16  com.hx.test.Test18StaticHolder$$Lambda$4/201556483
 313:             1             16  com.hx.test.Test18StaticHolder$$Lambda$40/828441346
 314:             1             16  com.hx.test.Test18StaticHolder$$Lambda$41/858242339
 315:             1             16  com.hx.test.Test18StaticHolder$$Lambda$42/1558712965
 316:             1             16  com.hx.test.Test18StaticHolder$$Lambda$43/1401132667
 317:             1             16  com.hx.test.Test18StaticHolder$$Lambda$44/1875308878
 318:             1             16  com.hx.test.Test18StaticHolder$$Lambda$45/36202360
 319:             1             16  com.hx.test.Test18StaticHolder$$Lambda$46/329645619
 320:             1             16  com.hx.test.Test18StaticHolder$$Lambda$47/1668627309
 321:             1             16  com.hx.test.Test18StaticHolder$$Lambda$5/731395981
 322:             1             16  com.hx.test.Test18StaticHolder$$Lambda$6/1282473384
 323:             1             16  com.hx.test.Test18StaticHolder$$Lambda$7/226710952
 324:             1             16  com.hx.test.Test18StaticHolder$$Lambda$8/1379435698
 325:             1             16  com.hx.test.Test18StaticHolder$$Lambda$9/1073502961
 326:             1             16  com.intellij.rt.debugger.agent.CaptureAgent$1
 327:             1             16  com.intellij.rt.debugger.agent.CaptureAgent$CaptureTransformer
 328:             1             16  com.intellij.rt.debugger.agent.CaptureStorage$1
 329:             1             16  java.io.FileDescriptor$1
 330:             1             16  java.lang.CharacterDataLatin1
 331:             1             16  java.lang.ClassValue$Identity
 332:             1             16  java.lang.Float
 333:             1             16  java.lang.ProcessEnvironment$EntryComparator
 334:             1             16  java.lang.ProcessEnvironment$NameComparator
 335:             1             16  java.lang.Runtime
 336:             1             16  java.lang.String$CaseInsensitiveComparator
 337:             1             16  java.lang.System$2
 338:             1             16  java.lang.Terminator$1
 339:             1             16  java.lang.Throwable$WrappedPrintStream
 340:             1             16  java.lang.invoke.MemberName$Factory
 341:             1             16  java.lang.invoke.MethodHandleImpl$2
 342:             1             16  java.lang.invoke.MethodHandleImpl$3
 343:             1             16  java.lang.ref.Reference$1
 344:             1             16  java.lang.ref.Reference$Lock
 345:             1             16  java.lang.reflect.ReflectAccess
 346:             1             16  java.net.URLClassLoader$7
 347:             1             16  java.nio.Bits$1
 348:             1             16  java.nio.charset.CoderResult$1
 349:             1             16  java.nio.charset.CoderResult$2
 350:             1             16  java.security.AllPermission
 351:             1             16  java.security.ProtectionDomain$2
 352:             1             16  java.security.ProtectionDomain$JavaSecurityAccessImpl
 353:             1             16  java.util.Collections$EmptyList
 354:             1             16  java.util.Collections$EmptySet
 355:             1             16  java.util.HashMap$EntrySet
 356:             1             16  java.util.HashMap$Values
 357:             1             16  java.util.Hashtable$EntrySet
 358:             1             16  java.util.IdentityHashMap$KeySet
 359:             1             16  java.util.LinkedHashMap$LinkedKeySet
 360:             1             16  java.util.WeakHashMap$KeySet
 361:             1             16  java.util.concurrent.atomic.AtomicBoolean
 362:             1             16  java.util.jar.JavaUtilJarAccessImpl
 363:             1             16  java.util.zip.ZipFile$1
 364:             1             16  sun.misc.ASCIICaseInsensitiveComparator
 365:             1             16  sun.misc.Launcher
 366:             1             16  sun.misc.Launcher$Factory
 367:             1             16  sun.misc.Perf
 368:             1             16  sun.misc.Unsafe
 369:             1             16  sun.net.www.protocol.file.Handler
 370:             1             16  sun.reflect.DelegatingMethodAccessorImpl
 371:             1             16  sun.reflect.ReflectionFactory
Total         22482      127186264

举报

相关推荐

0 条评论