所以,大家知道为什么要替换了吧 。
既然都已经要替换,那么一定是废除永久代是对 JVM 来说 , 肯定是好处多多的 。
废除永久代的好处
- 由于类的元数据分配在本地内存中 , 元空间的最大可分配空间就是系统可用内存空间 。不会遇到永久代存在时的内存溢出错误 。
- 将运行时常量池从PermGen分离出来,与类的元数据分开 , 提升类元数据的独立性 。
- 将元数据从PermGen剥离出来到Metaspace,可以提升对元数据的管理同时提升GC效率 。
Metaspace
- -XX:MetaspaceSize,初始空间大?。?锏礁弥稻突岽シ⒗??占??欣嘈托对?nbsp;, 同时GC会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过MaxMetaspaceSize时 , 适当提高该值 。
- -XX:MaxMetaspaceSize,最大空间,默认是没有限制的 。如果没有使用该参数来设置类的元数据的大小,其最大可利用空间是整个系统内存的可用空间 。JVM也可以增加本地内存空间来满足类元数据信息的存储 。但是如果没有设置最大值,则可能存在bug导致Metaspace的空间在不停的扩展,会导致机器的内存不足;进而可能出现swap内存被耗?。蛔钪盏贾陆?讨苯颖幌低持苯觡ill掉 。如果设置了该参数,当Metaspace剩余空间不足,会抛出:java.lang.OutOfMemoryError: Metaspace space
- -XX:MinMetaspaceFreeRatio,在GC之后,最小的Metaspace剩余空间容量的百分比,减少为分配空间所导致的垃圾收集
- -XX:MaxMetaspaceFreeRatio,在GC之后 , 最大的Metaspace剩余空间容量的百分比 , 减少为释放空间所导致的垃圾收集
推荐阅读
- 为什么会出现“集体咽喉炎”?专家答疑来了
- 拍一拍为什么没有振动 拍一拍后没有提示
- 废弃x光属什么垃圾 废弃x光属什么垃圾类
- 螺丝虾和基围虾的区别 为什么要少吃罗氏虾
- 张杰跟陈楚生、苏醒为什么玩不到一起?有三点原因
- 为什么中年女人出门不建议涂口红?主要有3个原因,看完就知道了
- 光腿神器为啥是双层的 光腿神器为什么是两层
- 图文并茂解释 Java JVM、JRE 和 JDK
- 为什么CISO需要将零信任作为应对勒索软件的强有力的策略
- 健身为什么要练肩?4个理由告诉你!附:一组肩部训练动作
