时间:2021-05-20
本文研究的主要是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设置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、Jvm调优。参考文章1、先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数。idea中安装VisualVM监控jvm的图文教程2、设置Jvm
Android两种启动模式的实例详解Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONTA
Linux动态库函数的详解加载动态库void*dlopen(constchar*filename,intflag);flag的可能值:RTLD_LAZYRTLD
Java枚举的使用方法详解前言你代码中的flag和status,都应该用枚举来替代很多人都说,枚举在实际开发中很少用到,甚至就没用到。因为,他们的代码往往是这样
Java垃圾回收与对象生命周期详解Java中的垃圾回收与对象生命周期1.垃圾回收垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回