小编der*_*eck的帖子

Java8 MetaspaceSize标志不起作用

我有一个简单的测试代码,它将-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();
}
Run Code Online (Sandbox Code Playgroud)

VM args:

-XX:MetaspaceSize=10m -XX:MaxMetaspaceSize=10m
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

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 …
Run Code Online (Sandbox Code Playgroud)

jvm java-8 metaspace

4
推荐指数
1
解决办法
1876
查看次数

标签 统计

java-8 ×1

jvm ×1

metaspace ×1