美文网首页
jdk8.0的jvm结构

jdk8.0的jvm结构

作者: 君子愁 | 来源:发表于2019-11-25 11:47 被阅读0次
    jdk8.0的jvm结构

    jdk8.0没有持久代了。

    在 JDK 1.8 中, HotSpot 已经没有 “PermGen space”这个区间了,取而代之是一个叫做 Metaspace(元空间) 的东西

    元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此,默认情况下,元空间的大小仅受本地内存限制,但可以通过以下参数来指定元空间的大小:

    -XX:MetaspaceSize,初始空间大小,达到该值就会触发垃圾收集进行类型卸载,同时GC会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过MaxMetaspaceSize时,适当提高该值。

    -XX:MaxMetaspaceSize,最大空间,默认是没有限制的。

    除了上面两个指定大小的选项以外,还有两个与 GC 相关的属性:

    -XX:MinMetaspaceFreeRatio,在GC之后,最小的Metaspace剩余空间容量的百分比,减少为分配空间所导致的垃圾收集

    -XX:MaxMetaspaceFreeRatio,在GC之后,最大的Metaspace剩余空间容量的百分比,减少为释放空间所导致的垃圾收集

    每次使用的内存到达了MetaspaceSize那么就会触发FULLGC,然后如果这个GC回收的内存太小,那么就会自动加大MetaspaceSize的值,但是要小于等于MaxMetaspaceSize。如果GC回收的内存比较大,那么不会改变MetaspaceSize的值

    注意:

    JDK 1.8中 PermSize 和 MaxPermGen 已经无效

    相关文章

      网友评论

          本文标题:jdk8.0的jvm结构

          本文链接:https://www.haomeiwen.com/subject/qopdwctx.html