我知道在Java 8中,他们用MetaSpace替换了PermGen。但我有几个问题:
- 默认情况下,MetaSpace是否是被GC收集的?
- 即使通过添加像
-XX:+CMSClassUnloadingEnabled
这样的参数来GC收集PermGen,那么什么使MetaSpace比PermGen更好? - MetaSpace基于本地内存,因此它将Java对象保存在磁盘上而不是VM上?
- 即使MetaSpace也可能耗尽内存吗?如果是这样,我将再次收到
OutOfMemoryException
。 - 默认情况下,随着内存的增加,MetaSpace是否可以扩大?