java虚拟机参数说明

2020-7-21 杨静

java虚拟机参数说明','

 

\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\nA\r\n内存管理参数
\r\nDisableExplicitGC\r\n默认关闭\r\n忽略来自System.gc()方法触发的垃圾收集
\r\nExplicitGCInvokesConcurrent\r\n默认关闭\r\n当收到System.gc()方法提交的来机收集申请时,使用CMS收集器进行收集
\r\nUseSerialGC\r\nClient模式的虚拟机默认开启,其他模式关闭\r\n虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial + Serial Old的收集器组合进行内存回收
\r\nUseParNewGC\r\n默认关闭\r\n打开此开关后,使用ParNew + Serial Old的收集器组合进行内存回收
\r\nUseConcMarkSweepGC\r\n默认关闭\r\n打开此开关后,使用ParNew + CMS + Serial Old的收集器组合进行内存回收.如果CMS收集器出现Concurrent Mode Failure,则Serial Old收集器将作为后备收集器
\r\nUseParallelGC\r\nServer模式的虚拟机默认开启,其他模式关闭\r\n虚拟机运行在Server模式下的默认值,打开此开关后,使用Parallel Scavenge + Serial Old的收集器组合进行内存回收
\r\nUseParallelOldGC\r\n默认关闭\r\n打开此开关后,使用Parallel Scavenge + Parallel Old的收集器组合进行内存回收
\r\nSurvivorRatio\r\n默认为8\r\n新生代中Eden区域与Survivor区域的容量比
\r\nPretenureSizeThreshold\r\n无默认值\r\n直接晋升到老年代的对象大小,设置这个参数后,大于这个参数的对象将直接在老年代分配
\r\nMaxTenuringThreshold\r\n默认值为15\r\n晋升到老年代的对象年龄,每个对象在坚持过一次Minor GC之后,年龄就+1,当超过这个参数值时就进入老年代
\r\nUseAdaptiveSizePolicy\r\n默认开启\r\n动态调整java堆中各个区域的大小及进入老年代的年龄
\r\nHandlePromotionFailure\r\njdk1.5及以前是默认关闭,jdk1.6默认开启\r\n是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个Eden和Survivor区的所有对象都存活的极端情况
\r\nParallelGCThreads\r\n少于或等于8个CPU时默认值为CPU数量值,多于8个CPU时比CPU数量值小\r\n设置并行GC时进行内存回收的线程数
\r\nGCTimeRatio\r\n默认值99\r\nGC时间占总时间的比率.仅在使用Parallel Scavenge收集器时生效
\r\nMaxGCPauseMills\r\n无默认值\r\n设置GC最大停顿时间.仅在使用Parallel Scavenge收集器时生效
\r\nCMSInitiatingOccupancyFraction\r\n默认值68\r\n设置CMS收集器在老年代空间被使用多少后触发垃圾收集
\r\nUseCMSCompactAtFullCollection\r\n默认开启\r\n设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片整理
\r\nCMSFullGCsBeforeCompaction\r\n无默认值\r\n设置CMS收集器在进行若干次垃圾收集后再启动一次内存碎片整理
\r\nScavengeBeforeFullGC\r\n默认开启\r\n在Full GC发生之前触发一次Minor GC
\r\nUseGCOverheadLimit\r\n默认开启\r\n禁止GC过程无限制的执行,如果过于频繁,就直接发生OutOfMemory
\r\nUseTLAB\r\nServer模式默认开启\r\n优先在本地线程缓冲区中分配对象,避免分配内存时的锁定过程
\r\nMaxHeapFreeRatio\r\n默认值70\r\n当Xmx值比Xms值大时,堆可以动态收缩和扩展,这个参数控制当堆空闲大于指定比率时自动收缩
\r\nMinHeapFreeRatio\r\n默认值40\r\n当Xmx值比Xms值大时,堆可以动态收缩和扩展,这个参数控制当堆空闲小于指定比率时自动收缩
\r\nMaxPermSize\r\n大部分情况下默认值是64MB\r\n永久代的最大值
\r\nB\r\n即时编译参数
\r\nCompileThreshold\r\nClient模式下默认值1500,Server模式下默认值10000\r\n触发即时编译的阈值
\r\nOnStackReplacePercentage\r\nClient模式下默认值933,Server模式下140\r\nOSR比率,它是OSR即时编译阈值计算公司的一个参数,用于代替BackEdgeThreshold参数控制回边计数器的实际溢出阈值
\r\nReservedCodeCacheSize\r\n大部分情况下默认值32MB\r\n即时编译器编译的代码缓存使得最大值
\r\nC\r\n类型加载参数
\r\nUseSplitVerifier\r\n默认开启\r\n使用依赖StackMapTable信息的类型检查代替数据流分析,以加快字节码校验速度
\r\nFailOverToOldVerifier\r\n默认开启\r\n当类型校验失败时,是否允许回到老的类型推到校验方式进行校验,如果开启则允许
\r\nRelaxAccessControlCheck\r\n默认开启\r\n在校验阶段放松对类型访问性的限制
\r\nD\r\n多线程相关参数
\r\nUseSpinning\r\njdk1.6默认开启,jdk1.5默认关闭\r\n开启自旋锁以免线程频繁的挂起和唤醒
\r\nPreBolckSpin\r\n默认值10\r\n使用自旋锁时默认的自旋次数
\r\nUseThreadPriorities\r\n默认开启\r\n使用本地线程优先级
\r\nUseBiasedLocking\r\n默认开启\r\n是否使用偏向锁,如果开启则使用
\r\nUseFastAccessorMethods\r\n默认开启\r\n当频繁反射执行某个方法时,生成字节码来加快反射的执行速度
\r\nE\r\n性能参数
\r\nAggressiveOpts\r\njdk1.6默认开启,jdk1.5默认关闭\r\n使用激进的优化特征,这些特征一般是具备正面和负面双重影响的,需要根据具体应用特点分析才能判定是否对性能有好处
\r\nUseLargePage\r\n默认开启\r\n如果可能,使用大内存分页,这项特性需要操作系统的支持
\r\nLargePageSizeInBytes\r\n默认值4MB\r\n使用指定大小的内存分页,这项特性需要操作系统的支持
\r\nStringCache\r\n默认开启\r\n是否使用字符串缓存,开启则使用
\r\nF\r\n调试参数
\r\nHeapDumpOnOutOfMemoryError\r\n默认关闭\r\n在发生内存溢出异常时是否生成堆转储快照,关闭则不生成
\r\nOnOutOfMemoryError\r\n无默认值\r\n当虚拟机抛出内存溢出异常时,执行指令的命令
\r\nOnError\r\n无默认值\r\n当虚拟机抛出ERROR异常时,执行指令的命令
\r\nPrintClassHistogram\r\n默认关闭\r\n使用[ctrl]-快捷键输出类统计状态,相当于jmap-histo的功能
\r\nPrintConcurrentLocks\r\n默认关闭\r\n打印J.U.C中的状态
\r\nPrintCommandLineFlags\r\n默认关闭\r\n打印启动虚拟机时输入的非稳定参数
\r\nPrintFlagsFinal\r\n----\r\n显示所有可设置的参数及它们的值(***从JDK 6 update 21开始才可以用)
\r\nPrintFlagsInitial\r\n----\r\n显示在处理参数之前所有可设置的参数及它们的值,然后直接退出程序
\r\nPrintCompilation\r\n默认关闭\r\n打印方法即时编译信息
\r\nPrintGC\r\n默认关闭\r\n打印GC信息
\r\nPrintGCDetails\r\n默认关闭\r\n打印GC的详细信息
\r\nPrintGCTimeStamps\r\n默认关闭\r\n打印GC停顿耗时
\r\nPrintTenuringDistribution\r\n默认关闭\r\n打印GC后新生代各个年龄对象的大小
\r\nTraceClassLoading\r\n默认关闭\r\n打印类加载信息
\r\nTraceClassUnloading\r\n默认关闭\r\n打印类卸载信息
\r\nPrintInlining\'\r\n默认关闭\r\n打印方法内联信息
\r\nPrintCFGToFile\r\n默认关闭\r\n将CFG图信息输出到文件,只有DEBUG版虚拟机才支持此参数
\r\nPrintIdealGraphFile\r\n默认关闭\r\n将Ideal图信息输出到文件,只有DEBUG版虚拟机才支持此参数
\r\nUnlockDiagnosticVMOptions\r\n默认关闭\r\n让虚拟机进入诊断模式,一些参数(如PrintAssembly)需要在诊断模式中才能使用
\r\nPrintAssembly\r\n默认关闭\r\n打印即时编译后的二进制信息

发表评论:

@2024 HowTD 浙ICP备18004985号-2

浙公网安备 33010202001281号