java8 动态参数_常用JVM参数(JDK 8)

-Xss:线程栈空间

-Xms: 初始堆空间,如:-Xms512M

-Xmx: 最大堆空间,如:-Xmx512M

-XX:MinHeapFreeRatio: 堆空间最小空闲比,当堆空间空闲内存小于这个数值时,JVM会扩展堆空间。

-XX:MaxHeapFreeRatio: 堆空间最大空闲比,当堆空间空闲内存大于这个数值时,JVM会压缩堆空间,得到一个较小的堆。

-XX:NewSize: 新生代初始空间

-XX:MaxNewSize: 最大新生代空间

-Xmn: 相当于设置相同的-XX:NewSize和-XX:MaxNewSize.

-XX:SurvivorRatio: 新生代中eden空间和s0空间的比例

-XX:TargetSurvivorRatio: survivor区的可使用率,当survivor区的空间使用率达到这个数值时,会将对象送入老年代。

-XX:NewRatio: 老年代 / 新生代的空间比例

-XX:MetaspaceSize=512m: 分配给类元数据空间的初始大小,以bytes为单位,达到该值就会触发垃圾收集进行类型卸载,同时GC会对该值进行调整:如果释放了大量的空间,就适当的降低该值;如果释放了很少的空间,那么在不超过MaxMetaspaceSize(如果设置了的话),适当的提高该值。

-XX:MaxMetaspaceSize=512m: 分配给类元数据空间的最大值, 超过此值就会触发Full GC. 此值仅受限于系统内存的大小, JVM会动态地改变此值

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

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

-XX:CompressedClassSpaceSize=512m: 类指针压缩空间大小, 默认为1G

-XX:+PrintGCDetails: 打印GC细节

-XX:+PrintGC:

-XX:+PrintGCTimeStamps:

-XX:+PrintHeapAtGC:

Java 8 以前的JVM内存结构图:

0c518f4f831f

1.jpeg

其中:

程序计数器、虚拟机栈都是线程私有的

本地方法栈与虚拟机栈功能类似,虚拟机栈管理Java函数调用,本地方法栈管理本地方法调用,Hotspot中不区分本地方法栈和虚拟机栈。

虚拟机栈在运行时使用栈帧保存上下文,栈帧中存储了以下内容:

局部变量表

操作数栈

动态连接方法

返回地址

更为精细地,堆和方法区的结构如下:

0c518f4f831f

2.jpeg

堆分为新生代和老年代.

新生代分为Eden区、s0区(survivor space0或from space)和s1区(survivor space1或to space)。

大部分新创建的对象进入Eden区,幸存区s0区和s1区存放经历了至少一次GC的“幸存者”。如果幸存区中的对象到了指定年龄仍未被回收,则有机会进入老年代(tenured)

对于习惯了HotSpot虚拟机的程序员来说,很多都愿意将方法区称作永久代。本质上来讲两者并不等价,仅因为Hotspot将GC分代扩展至方法区,或者说使用永久代来实现方法区。在其他虚拟机上是没有永久代的概念的。也就是说方法区是Java虚拟机规范,永久代是Hotspot针对该规范进行的实现。

堆和方法区都是被JVM中所有线程共享的。

Java 8以后的JVM内存结构图:

0c518f4f831f

3.jpeg

Java8中,Hotspot取消了永久代,永久代的参数-XX:PermSize和-XX:MaxPermSize也随之失效。

对于Java8,HotSpots取消了永久代,是不是就没有方法区了呢?当然不是,方法区只是一个规范,只不过它的实现变了。

在Java8中,方法区存在于元空间(Metaspace)。同时,元空间不再与堆连续,而且是存在于本地内存(Native memory)。

本地内存(Native memory),也称为C-Heap,是供JVM自身进程使用的。当Java Heap空间不足时会触发GC,但本地内存空间不够却不会触发GC。

元空间存在于本地内存,意味着只要本地内存足够,它不会出现像永久代中java.lang.OutOfMemoryError: PermGen space这种错误。默认情况下元空间是可以无限使用本地内存的,但JVM同样提供了参数-XX:MaxMetaspaceSize来限制它使用的空间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值