JVM中的flag设置详解

 更新时间:2018年02月02日 09:55:12   作者:Mirhunana  
这篇文章主要介绍了JVM中的flag设置详解,涉及堆大小设置,收集器设置等香公馆内容,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

本文研究的主要是JVM中的flag设置详解的相关内容,具体介绍如下。

一、堆大小设置

-Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM初始可用内存为3550M。

-Xmn2g:设置年轻代大小为2G。

-Xss128k:设置每个线程的堆栈大小为128K

-XX:NewSize=4:设置年轻代大小为4

-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与老年代(除去持久代)的比值为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值.设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

-XX:MaxPermSize=16m:设置持久代大小为16m.

-XX:PretenureSizeThreshold=n,大于n的对象直接放入老年代

-XX:MaxTenuringThreshold=0:设置垃圾最大年龄.如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代.

-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集.

整个堆大小 = 年轻代大小 + 老年代大小 + 持久代大小。

二、收集器设置

-XX:+UseSerialGC:设置串行收集器
-XX:+UseParallelGC:设置并行收集器
-XX:+UseParalledlOldGC:设置并行年老代收集器
-XX:+UseConcMarkSweepGC:设置并发收集器

三、垃圾回收统计信息

-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename

四、并行收集器设置

-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数.并行收集线程数.
-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比.公式为1/(1+n)

五、并发收集器设置

-XX:+CMSIncrementalMode:设置为增量模式.适用于单CPU情况.
-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数.并行收集线程数.

下面举个例子:

假设有个名为TestMem.java 的文件

javac TestMem.java 
java -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 TestMem

-Xms20M:JVM中Java堆的初始大小为20M。(包括新生代和老年代)
-Xmx20M:JVM中Java堆的最大大小为20M,也就是说不可扩展。(包括新生代和老年代)
-Xmn10M:新生代的大小为10M
-XX:+PrintGCDetails:打印详细GC信息
-XX:SurvivorRatio=8:新生代中一个Enden与一个Survivor区的空间比例是8:1,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10

知道上面的的flag信息之后,我们可以得到以下信息:

java堆的总大小为20M = 20 * 1024K = 20480K
新生代的大小:10M = 10 * 1024K = 10240K
eden space:10240K * 8/10 = 8192K
from space:10240K * 1/10 = 1024K
to space:10240K * 1/10 = 1024K
老年代的大小:20M - 10M = 10M = 10240K

总结

以上就是本文关于JVM中的flag设置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Spring Boot 启动加载数据 CommandLineRunner的使用

    Spring Boot 启动加载数据 CommandLineRunner的使用

    本篇文章主要介绍了Spring Boot 启动加载数据 CommandLineRunner的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • 一篇文章带你入门Java方法详解

    一篇文章带你入门Java方法详解

    这篇文章主要介绍了简单了解Java方法的定义和使用实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Mapper类中存在名称相同的方法重载报错问题

    Mapper类中存在名称相同的方法重载报错问题

    这篇文章主要介绍了Mapper类中存在名称相同的方法重载报错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 剑指Offer之Java算法习题精讲链表与二叉树专项训练

    剑指Offer之Java算法习题精讲链表与二叉树专项训练

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03
  • 详解Java8合并两个Map中元素的正确姿势

    详解Java8合并两个Map中元素的正确姿势

    这篇文章主要介绍了详解Java8合并两个Map中元素的正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 在SpringBoot中整合数据源的示例详解

    在SpringBoot中整合数据源的示例详解

    这篇文章主要介绍了在SpringBoot中如何整合数据源,本文介绍了如何在SpringBoot项目中整合常见的数据源,包括JdbcTemplate、MyBatis和JPA,并探讨了如何配置和使用多数据源,需要的朋友可以参考下
    2023-06-06
  • Java常用工具类总结

    Java常用工具类总结

    今天带大家学习Java常用工具类,文中有非常详细的图文解说及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Spring Boot console log 格式自定义方式

    Spring Boot console log 格式自定义方式

    这篇文章主要介绍了Spring Boot console log 格式自定义方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java网络编程教程之设置请求超时的方法

    Java网络编程教程之设置请求超时的方法

    这篇文章主要给大家介绍了关于Java网络编程教程之设置请求超时的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • spring boot中的条件装配bean的实现

    spring boot中的条件装配bean的实现

    这篇文章主要介绍了spring boot中的条件装配bean的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论