java-8 – Java8 MetaspaceSize标志不起作用
发布时间:2020-12-15 04:41:09 所属栏目:Java 来源:网络整理
导读:我有一个简单的测试代码,它将-XX:MetaspaceSize和-XX:MaxMetaspaceSize设置为相同的值.我认为metaspace不应该动态调整大小.但是从我的测试(检查VisualVM GC的Metaspace图并通过jstat打印日志),我看到元空间从低值增长到我设置的最大值.那么-XX:MetaspaceS
我有一个简单的测试代码,它将-XX:MetaspaceSize和-XX:MaxMetaspaceSize设置为相同的值.我认为metaspace不应该动态调整大小.但是从我的测试(检查VisualVM GC的Metaspace图并通过jstat打印日志),我看到元空间从低值增长到我设置的最大值.那么-XX:MetaspaceSize不能正常工作吗?
我的测试代码: try { while(true){ Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(A.class); enhancer.setUseCache(false); enhancer.setCallback((MethodInterceptor) (obj,method,args1,methodProxy) -> methodProxy.invokeSuper(obj,args1)); enhancer.create(); Thread.sleep(50); } } catch (Throwable throwable) { throwable.printStackTrace(); } VM args: -XX:MetaspaceSize=10m -XX:MaxMetaspaceSize=10m Java版本: java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02,mixed mode) jstat结果:(MC值继续增长到10m左右) C:Usersdyu>jstat -gc 12336 1000 20 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 8192.0 8192.0 0.0 2207.8 49152.0 43399.2 131072.0 16.0 7168.0 6777.9 768.0 677.7 1 0.015 0 0.000 0.015 8192.0 8192.0 0.0 2207.8 49152.0 48166.1 131072.0 16.0 7168.0 6777.9 768.0 677.7 1 0.015 0 0.000 0.015 8192.0 8192.0 2592.0 0.0 49152.0 3691.9 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 7537.9 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 11378.9 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 16180.3 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 20021.3 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 24822.5 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 28663.5 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 33466.8 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 37312.8 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 42114.1 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 2592.0 0.0 49152.0 45955.1 131072.0 24.0 8832.0 8403.6 896.0 795.9 2 0.020 0 0.000 0.020 8192.0 8192.0 0.0 3488.0 49152.0 1925.1 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 6737.6 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 11758.5 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 15608.7 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 29056.4 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 34196.6 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 8192.0 8192.0 0.0 3488.0 49152.0 39339.7 131072.0 32.0 10752.0 10225.1 1024.0 934.2 3 0.026 0 0.000 0.026 解决方法
你误解了
-XX:MetaspaceSize 的作用:
该选项的名称可能被视为具有误导性,除非您将其解释为“预期大小”,因此显然它应在超出时触发垃圾收集(而最大大小定义硬限制). 有an open bug report,JDK-8067205要求设置初始元空间大小的选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容