深入浅出java 虚拟机---虚拟机参数介绍(持续更新)

-Xms

设置最少堆内存例如 -Xms11M

-Xmx

设置最大堆内存例如-Xmx11M

-XX:MinHeapFreeRatio

设置堆最小空闲比例,默认为40,当小于这个只是,堆会扩展堆空间

XX:MaxHeapFreeRatio

设置堆最大空闲比例,默认为70,当大于这个只是,堆会压缩堆空间

-xss

设置为每个线程分配的内存大小,影响函数堆栈的深度,例如 -Xss256m

-Xmn

设置新生代大小。老年的=Xmx减去Xmn

–XX:NewRatio

设置新生代和老年代的比例默认比例为 1:2,

-XX:SurvivorRatio

eden:fromqu区比例  例如-XX:SurvivorRatio=8 表示 新生带有10M  from、to 为 1M, eden为 8M。 

-XX:TargetSurivioRatio

from区利用率、如:-XX:TargetSurivioRatio=90

-XX:PretenureSizeThreshold

设置大对象进入老年带的阈值 (只对串行收集器、新生代并行收集器有效)例如:-XX:PretenureSizeThreshold=1000000 ,设置大于1M,直接进入老年带

 

-XX:MaxTenuringThreshold

设置进入老年带的年龄,默认为15。实际进入老年代的年龄为动态计算年龄和它的较小值。-XX:MaxTenuringThreshold=15

-XX:+DisableExplicitGC 

屏蔽System.gc()

 

-XX:+TraceClassLoading

打印类的加载情况

 

-verbose:gc 或 -XX:+PrintGCDetails

打印垃圾收集过程

 

-XX:+PrintAssembly

打印汇报代码,需要配合其他参数使用,详细使用可以参考下面博客:

http://blog.csdn.net/kisimple/article/details/51526034

-XX:MaxDirectMemorySize

指定直接在内存分配的大小,不在jvm的堆中。 如 -XX:MaxDirectMemorySize=1M,nio中比较常用

 ByteBuffer.allocateDirect(max);

 

 

-XX:PermSize

非堆内存初始大小(方法区:常量池、元数据)-XX:PermSize=2M

-XX:PermSize

非堆内存最大值(方法区:常量池、元数据)-XX:MaxPermSize=4M 

 

 -Xmn

 设置新生带大小,-Xmn2M

-XX:NewSize

设置新生带初始大小 -XX:NewSize=2M

-XX:MaxNewSize

设置新生带最大大小-XX:MaxNewSize=2M

 -XX:SurvivorRatio

新生代内部比例  survivorRation=survivor/s0 = survivor/s1 如 -XX:SurvivorRatio=8

 

-XX:NewRatio 

老年代/新生代 如-XX:NewRatio=1

 

-XX:+UseSerialGC

指定新生带和老年带,使用串行垃圾回收器,jvm client 模式的默认,垃圾回收器

 

-XX:+UseParNewGC

指定新生带使用并行回收器,老年带使用串行回收器


-XX:+UseParallelGC

老年带并行回收器

-XX:ParallelGCThreads

指定并行收集器工作线程,当cpu小于8,线程等于cpu数。大于8,cpu为3+5*cpu_count/8.CMS默认线程数为(count+3/)2

 

-XX:+UseConcMarkSweepGC

指定新生产使用并行,老年带使用cms

-XX:+UseParallelGC

指定新生带使用并行回收器,老年带使用串行回收器

 

-XX:+UseParallelOldGC

指定新生代和老年带都是用并行回收器

并行回收器可以使用如下参数:

(1)-XX+MaxGCPauseMillis:设置最大停顿时间

(2)-XX:GCtimeRatio:设置吞吐量大小n(0-100),则系统垃圾回收将不大于1/(n+1)

(3)-XX:+UseAdaptiveSizePolicy 打开自适应GC策略,自动调整新生大的比例等等

 

-XX:CMSInitiatingOccupancyFraction

指定CMS回收阈值,默认老年代为68%,进行回收

 

-XX:+UseCMSCompactAtFullCollection

指定触发了多少次cms后,进行标记压缩。

 

-XX:+unlockExperimentalVMOptions -XX:+UseG1GC

启用G1收集器

-XX:MaxGCPauseMillis  -XX:MaxGCPauseMillis

指定G1收集全的目标,在200ms中停顿不超过50ms ,但不能保证执行它。-XX:MaxGCPauseMillis -= 50 XX:MaxGCPauseMillis = 200

 

 

-XX:CompileThreshold

设置被编译为本地机器码阈值,默认客户端为1500,服务端为10000 。使用下面两个参数可以查看编译信息 -XX:CompileThreshold=1500  -XX:+PrintCompilation -XX:+CITime

 

-XX:+HeapDumpOnOutOfMemoryError

当发生oom时保留堆快照,有助于分析内存溢出。

-XX:HeapDumpPath

指定堆快照日志路径 ,例如-XX:HeapDumpPath:C:\a.hprof

-XX:OnOutOfMemoryError

指定发生oom的时候,调用脚本。如-XX:OnOutOfMemoryError:C:\reset.bat

-XX:+PrintTenuringDistribution

打印实时晋升老年带的实际阈值

-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime

打印GC停顿时间,应用程序在GC停顿时间的执行时间

 

-Xloggc

指定gc日志存放路径 如:-Xloggc:C:\gc.log

 

-XX:+TraceClassLoading -XX:+TraceClassUnloading

打印类加载和卸载

 

-XX:+DisableExplicitGC

禁用显示gc,如System.gc()

-Xnoclassgc

禁用类回收

-Xincgc

启用增量GC,GC线程与程序交叉执行,以减少程序的停顿时间

-XX:-UseSplitVerifier  -XX:-FailOverToOldVerifier

指定使用旧类校验器 、关闭再次校验功能

 

-XX:+UseLargePages  -XX:LargePageSizeInBytes

启动大页,指定大页大小

-XX:+UseCompressedOops

打开压缩指针,较少6464位JVM的寻址地址,减少对内存的损耗

 

总结:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值