当未在jvm上设置MaxMetaspaceSize属性时,什么条件会触发元空间的垃圾回收。
比方说,如果我关闭了几个未使用的类加载器,就可以释放元空间内存中的内存。我的问题是,完整的gc是触发元空间内存的清理,还是以其他方式触发。
发布于 2017-06-23 19:16:45
因为默认情况下,Java8中的元空间是不受限制的,什么时候Java虚拟机知道它需要从元空间中清除未引用的类。
元空间本身不是垃圾回收的。但是java堆是。当java.lang.Class对象被收集时,底层的元数据也会被释放。因此,在大多数情况下,如果有任何类符合卸载条件,那么常规的GC周期也会释放元空间。
,但希望了解何时触发gc来清理未部署应用程序的元空间内存。
最晚在元空间的当前容量已满时,可能在常规垃圾回收卸载类时更早。
发布于 2017-06-23 15:17:00
是的,它是清理元空间的完整gc,特别是在GC上启用详细模式后,您应该看到类似以下Full GC (Metadata GC Threshold)的条目。
发布于 2017-06-23 13:09:15
请使用System.gc()或Runtime.gc()
https://stackoverflow.com/questions/44713423
复制相似问题