JVM学习笔记二:JVM参数

所有线程共享的内存主要有两块:堆内存和方法区。

其中堆内存分为两块:新生代Young generation(Eden区、From Survivor区、To Survivor区)、老年代Tenured generation。

方法区有人也称之“永久代”,但是它们并不等同。方法区是JVM的规范,而永久代是该规范的一种实现方式。从jdk1.7开始已经逐步去除“永久代”,在JDK8中取而代之的是“元空间”(Metaspace)。

元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此,默认情况下,元空间的大小仅受本地内存限制

下面是JVM的一些主要参数:

1. 基本参数

参数描述
-XX:+打开
-XX:-关闭

2. 内存大小配置参数

参数描述
-Xms初始堆内存大小
-Xmx最大堆内存大小
-Xmn年轻代内存大小
-Xss线程私有的虚拟机栈大小
-XX:MaxPermSize=64m永久代最大值
-XX:PermSize永久代初始值
-XX:MetaspaceSize元空间初始大小
-XX:MaxMetaspaceSize元空间最大值
-XX:MaxDirectMemorySize直接内存大小,默认与Java堆最大值(-Xmx)一样

3. JVM调试参数

参数描述
-verbose:gc记录GC运行及运行时间
-XX:+PrintGCDetails记录GC运行时的详细数据信息,以及在进程结束时打印当前的内存各区域分配情况。
-XX:+PrintGCTimeStamps打印垃圾收集时间戳
-Xloggc:{gcLogPath}gc日志存放路径
-XX:+HeapDumpOnOutOfMemoryError在内存溢出的时候生成Heap dump文件
-verbose:class、-XX:+TraceClassLoading查看类加载信息(要求Product版虚拟机)
-XX:+TraceClassUnLoading查看类卸载信息(要求FastDebug版虚拟机)
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000用于远程调试

4. 垃圾收集器

参数描述
-XX:+UseSerialG使用Serial+Serial Old的收集器组合进行内存回收。
-XX:+UseParNewGC使用ParNew+Serial Old的收集器组合进行内存回收。
-XX:+UseConcMarkSweepGC使用ParNew+CMS+Serial Old的收集器组合进行内存回收。Serial Old作为出现Concurrent Mode Failure失败后的后备收集器使用。
-XX:+UseParallelGC使用Parallel Scavenge+Serial Old(PS Mark Sweep)收集器组合进行内存回收。
-XX:+UseParallelOldGC使用Parallel Scavenge+Parallel Old收集器组合进行内存回收。

5. JVM调优参数

参数描述
-XX:SurvivorRatio新生代中Eden区域和Survivor区域(单个Survivor)的容量比值,默认为8
-XX:NewRatio堆内存中老生代和年轻代的容量比值。例:NewRatio=2,表明old:new=2:1
-XX:PretenureSizeThreshold直接晋升到老年代的对象大小,大于该值的对象直接在老年代分配。
-XX:MaxTenuringThreshold对象在新生代中能存活的最大年龄。
-XX:+UseAdaptiveSizePolicy动态调整Java堆中各个区域的大小以及进入老年代的年龄(限Parallel Scaverge收集器)
-XX:+HandlePromotionFailure允许老年代分配担保失败,开启后可以冒险YGC。
-XX:ParallelGCThreads设置并行GC时进行内存回收的线程数
-XX:GCTimeRatio默认为99,即允许1%的GC时间。GC时间占总时间的比例由公式1/(1+GCTimeRatio)得出(限Parallel Scaverge收集器)
-XX:MaxGCPauseMillis设置GC的最大停顿时间(限Parallel Scaverge收集器)
-XX:+CMSInitialingOccupancyFraction设置CMS收集器在老年代空间被使用多少后触发Full GC。默认值是68,即68%。(限CMS收集器)
-XX:+UseCMSCompactionAtFullCollection设置CMS在完成垃圾收集后进行一次内存碎片整理。(限CMS收集器)
-XX:+CMSFullGCsBeforeCompaction设置CMS执行多少次GC后,下次GC时进行一次内存碎片整理,默认为0。即每次都整理。
-Xnoclassgc不回收无用类

转载于:https://www.cnblogs.com/znicy/p/6882424.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值