我有一个简单的测试代码,将-XX:MetaspaceSize和-XX:MaxMetaspaceSize设置为相同的值。我认为元空间不应该动态调整大小。但是从我的测试(检查 VisualVM GC 中的元空间图并通过 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();
}
虚拟机参数:
-XX:MetaspaceSize=10m -XX:MaxMetaspaceSize=10m
爪哇版:
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:\Users\dyu>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