本文主要是介绍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 1240520S0 S1 E O M CCS YGC YGCT FGC FGCT GCT0.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 = 0MaxHeapFreeRatio = 100MaxHeapSize = 9374269440 (8940.0MB)NewSize = 3124756480 (2980.0MB)MaxNewSize = 3124756480 (2980.0MB)OldSize = 6249512960 (5960.0MB)NewRatio = 2SurvivorRatio = 8MetaspaceSize = 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 Generationcapacity = 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 [C2: 167040 2576855560 [B3: 1180994 28343856 java.lang.String4: 87163 28120712 [I5: 625826 20026432 java.util.HashMap$Node6: 566321 18122272 java.util.ArrayList$Itr7: 401111 17644992 [Ljava.lang.Object;8: 407890 16315600 java.util.TreeMap$Entry9: 74192 10258376 [Ljava.util.HashMap$Node;10: 155426 7460448 java.util.HashMap
jmap dump 一下堆空间信息
jhat 分析一下 char[] 的实例, 可以看到 73w 的 char[] 的 oop
获取 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 即为我们这里的这个 大对象
代码中 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 的步骤, 那么这个 "extract-rule.xml" 的内容 会被存储 4次
这个 LinkedHashMap 是被存储在 ConfigFileObjectService 中
最开始的 usercode 中的 ConfigFileObjectService 是 classloader 加载创建的, 后面的 SOURCE/TRANSFORMATION/SINK 中的 ConfigFileObjectService 是算子需要的上下文, 由 usercode 传递过来 反序列化生成的
以 MyFlinkKafkaConsumerXSource 为例, 看一下 这一系列引用关系
以 TransFieldToStandardXCommand 为例, 会被封装到 PreprocessProcessFuncImpl 中与 flink 进行交互, 引用关系如下
以 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
堆栈信息再往前推进一些, 可以看到 Flink-DispatcherRestEndpoint-thread-* 是执行 usercode 的时候将 contextClassloader 换成了 ChildFirstClassloader, 执行完成将 contextClassloader
切换回去, 常见的操作
这里可以看到 job 中 usercode 这一部分代码的执行是通过 classloader 进行隔离的
TaskManager 这边, 同一个 jvm 同一个 job 会对应同一个 ChildFirstClassLoader, 创建是 Task 初始化的时候创建的
为什么 job 已经执行完成了, ConfigFileObjectService 相关的对象没有被回收?
抽取一个 ConfigFileObjectService 查看一下, 引用这个对象的只有 ConfigFileObjectService.uniqueInstance, 是一个静态字段, 意味着需要回收 这个 ConfigFileObjectService 对象, 是需要卸载类 ConfigFileObjectService
根据规范 卸载类的条件是 其对应的 classloadaer 被回收
我们抽取一个 ChildFirstClassLoader, 来查看一下, 可以明显看到的是还有 诸多 java.lang.Thread 还引用了当前 ConfigFileObjectService
gc 的时候, java.lang.Thread oop 本身以及其 stack 是 gc roots 的一部分, 既然这么多 alive 的 java.lang.Thread 还引用着 ChildFirstClassLoader, classloader 是被 gc 不掉
当然 不排除其他强应用, 充分不必要 条件
一个模拟的 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:classpublic 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 classloaderint 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();}}// Test18StaticHolderpublic static void main(String[] args) {System.out.println(" Test18StaticHolder proceed ... ");new Thread(() -> {// do bizsleep(10_000);}, "Test18StaticHolderAliveThread").start();}// readContentpublic 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();}// sleeppublic 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 [C2: 189 797560 [I3: 4134 99216 java.lang.String4: 842 95856 java.lang.Class5: 1391 74504 [Ljava.lang.Object;6: 156 64560 [B7: 836 33440 java.util.TreeMap$Entry8: 268 25696 [Ljava.util.HashMap$Node;9: 689 22048 java.util.HashMap$Node10: 58 21808 java.lang.Thread11: 284 18176 java.net.URL12: 168 13440 [Ljava.util.WeakHashMap$Entry;13: 272 13056 java.util.HashMap14: 231 12936 java.lang.invoke.MemberName15: 279 11160 java.lang.ref.SoftReference16: 109 10464 java.util.jar.JarFile$JarFileEntry17: 244 9760 java.util.LinkedHashMap$Entry18: 300 9600 java.util.concurrent.ConcurrentHashMap$Node19: 396 9504 java.util.LinkedList$Node20: 226 9040 java.lang.ref.Finalizer21: 252 8928 [Ljava.lang.String;22: 168 8064 java.util.WeakHashMap23: 117 7488 java.util.jar.JarFile24: 141 6768 sun.misc.URLClassPath$JarLoader25: 119 6664 sun.nio.cs.UTF_8$Encoder26: 202 6464 java.util.LinkedList27: 196 6272 java.lang.invoke.LambdaForm$Name28: 256 6144 java.lang.Long29: 244 5856 java.io.ExpiringCache$Entry30: 94 5640 [Ljava.lang.ref.SoftReference;31: 174 5568 java.lang.ref.ReferenceQueue32: 166 5312 java.util.Hashtable$Entry33: 128 5120 java.lang.invoke.MethodType34: 103 4944 java.util.zip.Inflater35: 48 4608 org.apache.flink.util.ChildFirstClassLoader36: 110 4400 java.security.AccessControlContext37: 123 4144 [Ljava.lang.Class;38: 55 4128 [Ljava.util.Hashtable$Entry;39: 129 4128 java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry40: 256 4096 java.lang.Byte41: 256 4096 java.lang.Integer42: 256 4096 java.lang.Short43: 102 4080 java.security.ProtectionDomain44: 169 4056 java.util.ArrayList45: 117 3744 java.util.zip.ZipCoder46: 111 3552 java.lang.invoke.DirectMethodHandle47: 204 3264 java.lang.Object48: 102 3264 java.util.Vector49: 101 3232 java.security.CodeSource50: 68 3056 [Ljava.lang.invoke.LambdaForm$Name;51: 63 3024 java.lang.invoke.LambdaForm52: 28 2912 [Ljava.lang.invoke.MethodHandle;53: 176 2816 java.lang.ref.ReferenceQueue$Lock54: 117 2808 java.util.ArrayDeque55: 49 2744 java.lang.invoke.MethodTypeForm56: 7 2544 [Ljava.util.concurrent.ConcurrentHashMap$Node;57: 52 2496 java.util.Hashtable58: 103 2472 java.util.zip.ZStreamRef59: 50 2400 sun.misc.URLClassPath60: 96 2304 java.lang.invoke.LambdaForm$NamedFunction61: 95 2280 [Ljava.security.ProtectionDomain;62: 128 2048 java.lang.Character63: 62 1984 java.io.File64: 38 1824 sun.util.locale.LocaleObjectCache$CacheEntry65: 52 1664 java.security.Permissions66: 102 1632 [Ljava.security.Principal;67: 51 1632 java.io.FilePermission68: 102 1632 java.security.ProtectionDomain$Key69: 51 1632 java.util.Stack70: 50 1600 java.lang.invoke.BoundMethodHandle$Species_L71: 18 1440 java.lang.reflect.Constructor72: 51 1224 java.io.FilePermissionCollection73: 49 1176 sun.misc.URLClassPath$FileLoader74: 23 1104 java.nio.HeapCharBuffer75: 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 [[C80: 26 1040 java.io.ObjectStreamField81: 27 864 com.intellij.rt.debugger.agent.CaptureAgent$InstrumentPoint82: 50 800 java.util.HashSet83: 33 792 java.lang.StringBuilder84: 19 760 sun.util.locale.BaseLocale$Key85: 9 656 [S86: 3 624 [Ljava.lang.invoke.LambdaForm;87: 19 608 java.util.Locale88: 19 608 sun.util.locale.BaseLocale89: 9 576 java.util.concurrent.ConcurrentHashMap90: 10 560 sun.invoke.util.Wrapper91: 1 528 [Ljava.lang.Character;92: 13 520 java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle93: 6 456 [Lsun.invoke.util.Wrapper;94: 19 456 java.util.Locale$LocaleKey95: 13 416 java.lang.invoke.SimpleMethodHandle96: 17 408 java.util.jar.Attributes$Name97: 10 400 java.lang.invoke.DirectMethodHandle$Accessor98: 1 384 java.lang.ref.Finalizer$FinalizerThread99: 6 384 java.nio.DirectByteBuffer100: 1 376 java.lang.ref.Reference$ReferenceHandler101: 14 336 java.lang.invoke.LambdaFormEditor$Transform$Kind102: 6 336 java.nio.DirectLongBufferU103: 10 320 java.lang.OutOfMemoryError104: 10 320 java.lang.StackTraceElement105: 13 312 java.lang.RuntimePermission106: 11 304 [Ljava.io.ObjectStreamField;107: 2 304 [Ljava.lang.Thread;108: 12 288 java.lang.invoke.Invokers109: 9 288 jdk.internal.org.objectweb.asm.Type110: 12 288 sun.misc.MetaIndex111: 8 248 [Ljava.lang.invoke.LambdaForm$BasicType;112: 6 240 [Ljava.lang.invoke.BoundMethodHandle$SpeciesData;113: 5 240 java.util.TreeMap114: 4 224 java.lang.Package115: 9 216 sun.reflect.NativeConstructorAccessorImpl116: 7 208 [Ljava.lang.invoke.LambdaForm$NamedFunction;117: 5 200 java.lang.invoke.BoundMethodHandle$SpeciesData118: 5 200 java.util.WeakHashMap$Entry119: 6 192 java.lang.invoke.LambdaForm$BasicType120: 8 192 java.lang.invoke.MethodHandleImpl$Intrinsic121: 2 176 java.lang.reflect.Method122: 7 168 java.net.NetPermission123: 4 160 java.io.FileDescriptor124: 3 144 java.nio.HeapByteBuffer125: 3 144 java.util.Properties126: 6 144 sun.misc.PerfCounter127: 9 144 sun.reflect.DelegatingConstructorAccessorImpl128: 2 128 java.io.ExpiringCache$1129: 3 120 java.lang.invoke.BoundMethodHandle$Species_LL130: 2 112 [Ljava.lang.invoke.MethodType;131: 2 96 java.lang.ThreadGroup132: 3 96 java.lang.ThreadLocal$ThreadLocalMap$Entry133: 3 96 java.security.BasicPermissionCollection134: 4 96 sun.misc.JarIndex135: 1 96 sun.misc.Launcher$AppClassLoader136: 2 96 sun.nio.cs.StreamEncoder137: 3 88 [Ljava.lang.StackTraceElement;138: 1 88 sun.misc.Launcher$ExtClassLoader139: 1 80 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;140: 2 80 java.io.BufferedWriter141: 2 80 java.io.ExpiringCache142: 2 80 java.lang.ClassLoader$NativeLibrary143: 5 80 java.lang.ThreadLocal144: 2 80 java.lang.invoke.MethodHandleImpl$AsVarargsCollector145: 2 80 sun.nio.cs.UTF_8$Decoder146: 1 72 [Ljava.lang.invoke.LambdaFormEditor$Transform$Kind;147: 3 72 java.security.SecurityPermission148: 3 72 java.util.Collections$SynchronizedSet149: 3 72 java.util.concurrent.atomic.AtomicLong150: 2 64 [J151: 2 64 java.io.FileInputStream152: 2 64 java.io.FileOutputStream153: 2 64 java.io.PrintStream154: 2 64 java.lang.ClassValue$Entry155: 2 64 java.lang.VirtualMachineError156: 2 64 java.lang.ref.ReferenceQueue$Null157: 1 56 [[I158: 1 56 java.lang.invoke.LambdaFormEditor$Transform159: 1 56 java.net.SocketPermission160: 1 48 [Ljava.lang.invoke.MethodHandleImpl$Intrinsic;161: 2 48 java.io.BufferedOutputStream162: 1 48 java.io.BufferedReader163: 2 48 java.io.File$PathStatus164: 2 48 java.io.OutputStreamWriter165: 1 48 java.lang.ProcessEnvironment166: 1 48 java.lang.invoke.BoundMethodHandle$Species_L4167: 2 48 java.lang.invoke.MethodHandles$Lookup168: 2 48 java.lang.reflect.ReflectPermission169: 2 48 java.nio.charset.CoderResult170: 3 48 java.nio.charset.CodingErrorAction171: 2 48 java.util.Collections$SetFromMap172: 3 48 java.util.concurrent.atomic.AtomicInteger173: 2 48 sun.instrument.TransformerManager174: 2 48 sun.misc.NativeSignalHandler175: 2 48 sun.misc.Signal176: 1 48 sun.nio.cs.StreamDecoder177: 2 40 [Lsun.instrument.TransformerManager$TransformerInfo;178: 1 40 [[Ljava.lang.invoke.LambdaForm$Name;179: 1 40 java.io.BufferedInputStream180: 1 40 java.util.IdentityHashMap181: 1 40 sun.nio.cs.StandardCharsets$Aliases182: 1 40 sun.nio.cs.StandardCharsets$Cache183: 1 40 sun.nio.cs.StandardCharsets$Classes184: 1 40 sun.nio.cs.ext.ExtendedCharsets185: 1 32 [Ljava.lang.OutOfMemoryError;186: 1 32 [Ljava.lang.ThreadGroup;187: 2 32 com.intellij.rt.debugger.agent.CaptureAgent$ParamKeyProvider188: 1 32 java.io.WinNTFileSystem189: 1 32 java.lang.ArithmeticException190: 2 32 java.lang.Boolean191: 1 32 java.lang.NullPointerException192: 2 32 java.nio.ByteOrder193: 1 32 java.util.Collections$UnmodifiableMap194: 1 32 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl195: 1 32 sun.instrument.InstrumentationImpl196: 2 32 sun.net.www.protocol.jar.Handler197: 1 32 sun.nio.cs.StandardCharsets198: 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$FieldKeyProvider203: 1 24 java.io.FileReader204: 1 24 java.lang.ClassValue$Version205: 1 24 java.lang.Double206: 1 24 java.lang.ThreadLocal$ThreadLocalMap207: 1 24 java.lang.invoke.MethodHandleImpl$4208: 1 24 java.lang.invoke.MethodType$ConcurrentWeakInternSet209: 1 24 java.security.AllPermissionCollection210: 1 24 java.util.BitSet211: 1 24 java.util.Collections$EmptyMap212: 1 24 java.util.Collections$UnmodifiableRandomAccessList213: 1 24 java.util.Locale$Cache214: 1 24 sun.instrument.TransformerManager$TransformerInfo215: 1 24 sun.launcher.LauncherHelper216: 1 24 sun.nio.cs.ISO_8859_1217: 1 24 sun.nio.cs.ThreadLocalCoders$1218: 1 24 sun.nio.cs.ThreadLocalCoders$2219: 1 24 sun.nio.cs.US_ASCII220: 1 24 sun.nio.cs.UTF_16221: 1 24 sun.nio.cs.UTF_16BE222: 1 24 sun.nio.cs.UTF_16LE223: 1 24 sun.nio.cs.UTF_8224: 1 24 sun.reflect.NativeMethodAccessorImpl225: 1 24 sun.util.locale.BaseLocale$Cache226: 1 16 [D227: 1 16 [F228: 1 16 [Ljava.lang.Throwable;229: 1 16 [Ljava.security.cert.Certificate;230: 1 16 [Z231: 1 16 com.hx.test.Test18StaticHolder232: 1 16 com.hx.test.Test18StaticHolder233: 1 16 com.hx.test.Test18StaticHolder234: 1 16 com.hx.test.Test18StaticHolder235: 1 16 com.hx.test.Test18StaticHolder236: 1 16 com.hx.test.Test18StaticHolder237: 1 16 com.hx.test.Test18StaticHolder238: 1 16 com.hx.test.Test18StaticHolder239: 1 16 com.hx.test.Test18StaticHolder240: 1 16 com.hx.test.Test18StaticHolder241: 1 16 com.hx.test.Test18StaticHolder242: 1 16 com.hx.test.Test18StaticHolder243: 1 16 com.hx.test.Test18StaticHolder244: 1 16 com.hx.test.Test18StaticHolder245: 1 16 com.hx.test.Test18StaticHolder246: 1 16 com.hx.test.Test18StaticHolder247: 1 16 com.hx.test.Test18StaticHolder248: 1 16 com.hx.test.Test18StaticHolder249: 1 16 com.hx.test.Test18StaticHolder250: 1 16 com.hx.test.Test18StaticHolder251: 1 16 com.hx.test.Test18StaticHolder252: 1 16 com.hx.test.Test18StaticHolder253: 1 16 com.hx.test.Test18StaticHolder254: 1 16 com.hx.test.Test18StaticHolder255: 1 16 com.hx.test.Test18StaticHolder256: 1 16 com.hx.test.Test18StaticHolder257: 1 16 com.hx.test.Test18StaticHolder258: 1 16 com.hx.test.Test18StaticHolder259: 1 16 com.hx.test.Test18StaticHolder260: 1 16 com.hx.test.Test18StaticHolder261: 1 16 com.hx.test.Test18StaticHolder262: 1 16 com.hx.test.Test18StaticHolder263: 1 16 com.hx.test.Test18StaticHolder264: 1 16 com.hx.test.Test18StaticHolder265: 1 16 com.hx.test.Test18StaticHolder266: 1 16 com.hx.test.Test18StaticHolder267: 1 16 com.hx.test.Test18StaticHolder268: 1 16 com.hx.test.Test18StaticHolder269: 1 16 com.hx.test.Test18StaticHolder270: 1 16 com.hx.test.Test18StaticHolder271: 1 16 com.hx.test.Test18StaticHolder272: 1 16 com.hx.test.Test18StaticHolder273: 1 16 com.hx.test.Test18StaticHolder274: 1 16 com.hx.test.Test18StaticHolder275: 1 16 com.hx.test.Test18StaticHolder276: 1 16 com.hx.test.Test18StaticHolder277: 1 16 com.hx.test.Test18StaticHolder278: 1 16 com.hx.test.Test18StaticHolder279: 1 16 com.hx.test.Test18StaticHolder$$Lambda$1/329611835280: 1 16 com.hx.test.Test18StaticHolder$$Lambda$10/1757676444281: 1 16 com.hx.test.Test18StaticHolder$$Lambda$11/1870647526282: 1 16 com.hx.test.Test18StaticHolder$$Lambda$12/2009787198283: 1 16 com.hx.test.Test18StaticHolder$$Lambda$13/466505482284: 1 16 com.hx.test.Test18StaticHolder$$Lambda$14/1615780336285: 1 16 com.hx.test.Test18StaticHolder$$Lambda$15/2094411587286: 1 16 com.hx.test.Test18StaticHolder$$Lambda$16/1216590855287: 1 16 com.hx.test.Test18StaticHolder$$Lambda$17/1122134344288: 1 16 com.hx.test.Test18StaticHolder$$Lambda$18/1413653265289: 1 16 com.hx.test.Test18StaticHolder$$Lambda$19/125622176290: 1 16 com.hx.test.Test18StaticHolder$$Lambda$2/1007251739291: 1 16 com.hx.test.Test18StaticHolder$$Lambda$20/342597804292: 1 16 com.hx.test.Test18StaticHolder$$Lambda$21/258754732293: 1 16 com.hx.test.Test18StaticHolder$$Lambda$22/1476394199294: 1 16 com.hx.test.Test18StaticHolder$$Lambda$23/348100441295: 1 16 com.hx.test.Test18StaticHolder$$Lambda$24/655381473296: 1 16 com.hx.test.Test18StaticHolder$$Lambda$25/1076496284297: 1 16 com.hx.test.Test18StaticHolder$$Lambda$26/1072601481298: 1 16 com.hx.test.Test18StaticHolder$$Lambda$27/1459672753299: 1 16 com.hx.test.Test18StaticHolder$$Lambda$28/1596000437300: 1 16 com.hx.test.Test18StaticHolder$$Lambda$29/1225439493301: 1 16 com.hx.test.Test18StaticHolder$$Lambda$3/853993923302: 1 16 com.hx.test.Test18StaticHolder$$Lambda$30/1845904670303: 1 16 com.hx.test.Test18StaticHolder$$Lambda$31/13329486304: 1 16 com.hx.test.Test18StaticHolder$$Lambda$32/517210187305: 1 16 com.hx.test.Test18StaticHolder$$Lambda$33/1776957250306: 1 16 com.hx.test.Test18StaticHolder$$Lambda$34/1273765644307: 1 16 com.hx.test.Test18StaticHolder$$Lambda$35/764577347308: 1 16 com.hx.test.Test18StaticHolder$$Lambda$36/422250493309: 1 16 com.hx.test.Test18StaticHolder$$Lambda$37/343965883310: 1 16 com.hx.test.Test18StaticHolder$$Lambda$38/2114650936311: 1 16 com.hx.test.Test18StaticHolder$$Lambda$39/540585569312: 1 16 com.hx.test.Test18StaticHolder$$Lambda$4/201556483313: 1 16 com.hx.test.Test18StaticHolder$$Lambda$40/828441346314: 1 16 com.hx.test.Test18StaticHolder$$Lambda$41/858242339315: 1 16 com.hx.test.Test18StaticHolder$$Lambda$42/1558712965316: 1 16 com.hx.test.Test18StaticHolder$$Lambda$43/1401132667317: 1 16 com.hx.test.Test18StaticHolder$$Lambda$44/1875308878318: 1 16 com.hx.test.Test18StaticHolder$$Lambda$45/36202360319: 1 16 com.hx.test.Test18StaticHolder$$Lambda$46/329645619320: 1 16 com.hx.test.Test18StaticHolder$$Lambda$47/1668627309321: 1 16 com.hx.test.Test18StaticHolder$$Lambda$5/731395981322: 1 16 com.hx.test.Test18StaticHolder$$Lambda$6/1282473384323: 1 16 com.hx.test.Test18StaticHolder$$Lambda$7/226710952324: 1 16 com.hx.test.Test18StaticHolder$$Lambda$8/1379435698325: 1 16 com.hx.test.Test18StaticHolder$$Lambda$9/1073502961326: 1 16 com.intellij.rt.debugger.agent.CaptureAgent$1327: 1 16 com.intellij.rt.debugger.agent.CaptureAgent$CaptureTransformer328: 1 16 com.intellij.rt.debugger.agent.CaptureStorage$1329: 1 16 java.io.FileDescriptor$1330: 1 16 java.lang.CharacterDataLatin1331: 1 16 java.lang.ClassValue$Identity332: 1 16 java.lang.Float333: 1 16 java.lang.ProcessEnvironment$EntryComparator334: 1 16 java.lang.ProcessEnvironment$NameComparator335: 1 16 java.lang.Runtime336: 1 16 java.lang.String$CaseInsensitiveComparator337: 1 16 java.lang.System$2338: 1 16 java.lang.Terminator$1339: 1 16 java.lang.Throwable$WrappedPrintStream340: 1 16 java.lang.invoke.MemberName$Factory341: 1 16 java.lang.invoke.MethodHandleImpl$2342: 1 16 java.lang.invoke.MethodHandleImpl$3343: 1 16 java.lang.ref.Reference$1344: 1 16 java.lang.ref.Reference$Lock345: 1 16 java.lang.reflect.ReflectAccess346: 1 16 java.net.URLClassLoader$7347: 1 16 java.nio.Bits$1348: 1 16 java.nio.charset.CoderResult$1349: 1 16 java.nio.charset.CoderResult$2350: 1 16 java.security.AllPermission351: 1 16 java.security.ProtectionDomain$2352: 1 16 java.security.ProtectionDomain$JavaSecurityAccessImpl353: 1 16 java.util.Collections$EmptyList354: 1 16 java.util.Collections$EmptySet355: 1 16 java.util.HashMap$EntrySet356: 1 16 java.util.HashMap$Values357: 1 16 java.util.Hashtable$EntrySet358: 1 16 java.util.IdentityHashMap$KeySet359: 1 16 java.util.LinkedHashMap$LinkedKeySet360: 1 16 java.util.WeakHashMap$KeySet361: 1 16 java.util.concurrent.atomic.AtomicBoolean362: 1 16 java.util.jar.JavaUtilJarAccessImpl363: 1 16 java.util.zip.ZipFile$1364: 1 16 sun.misc.ASCIICaseInsensitiveComparator365: 1 16 sun.misc.Launcher366: 1 16 sun.misc.Launcher$Factory367: 1 16 sun.misc.Perf368: 1 16 sun.misc.Unsafe369: 1 16 sun.net.www.protocol.file.Handler370: 1 16 sun.reflect.DelegatingMethodAccessorImpl371: 1 16 sun.reflect.ReflectionFactory
Total 22482 127186264
完
这篇关于01 记录一次 TaskManager 中 old 被全部占用的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!