首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java 8中元空间内存上触发gc

在java 8中元空间内存上触发gc
EN

Stack Overflow用户
提问于 2017-06-23 13:05:35
回答 3查看 4.1K关注 0票数 4

当未在jvm上设置MaxMetaspaceSize属性时,什么条件会触发元空间的垃圾回收。

比方说,如果我关闭了几个未使用的类加载器,就可以释放元空间内存中的内存。我的问题是,完整的gc是触发元空间内存的清理,还是以其他方式触发。

EN

回答 3

Stack Overflow用户

发布于 2017-06-23 19:16:45

因为默认情况下,Java8中的元空间是不受限制的,什么时候Java虚拟机知道它需要从元空间中清除未引用的类。

元空间本身不是垃圾回收的。但是java堆是。当java.lang.Class对象被收集时,底层的元数据也会被释放。因此,在大多数情况下,如果有任何类符合卸载条件,那么常规的GC周期也会释放元空间。

,但希望了解何时触发gc来清理未部署应用程序的元空间内存。

最晚在元空间的当前容量已满时,可能在常规垃圾回收卸载类时更早。

票数 1
EN

Stack Overflow用户

发布于 2017-06-23 15:17:00

是的,它是清理元空间的完整gc,特别是在GC上启用详细模式后,您应该看到类似以下Full GC (Metadata GC Threshold)的条目。

票数 0
EN

Stack Overflow用户

发布于 2017-06-23 13:09:15

请使用System.gc()或Runtime.gc()

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44713423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档