JVM 设置

  • 2015-12-22
  • 3,157
  • 0

堆栈空间设置

  • -XX:+PrintGCDetails
  • -Xms: 初始堆大小
  • -Xmx: 最大堆大小
  • -Xmn: 新生代大小 NewSize=MaxNewSize
  • -XX:NewSize: 新生代初始堆大小
  • -XX:MaxNewSize: 新生代最大堆大小
  • -Xss: 线程栈大小
  • -XX:PermSize: 永久代(方法区)初始值
  • -XX:MaxPermSize: 永久代最大值
  • -XX:NewRatio: 老年代,新生代比例 old gen/young gen
  • -XX:SurvivorRatio: 新生代中Eden区与survivior区比例 eden/s0=eden/s1
  • -XX:MinHeapFreeRatio: 当堆空间的空闲内存小于这个数值时,JVM扩展堆空间
  • -XX:MaxHeapFreeRatio: 当堆空间的空闲内存大于这个数值时,JVM压缩堆空间
  • -XX:TargetSurvivorRatio: 当survivior区的空间使用率达到这个数值时,会将对象送入老年代
  • -XX:MaxTenuringThreshold: 晋升老年代年龄,默认15
  • -XX:PretenureSizeThreshold:设置大对象直接进入老年代的阈值

GC设置

串行回收器相关:

  • -XX:+UseSerialGC:新生代老年代都使用串行手机器
  • -XX:SurvivorRatio: 新生代中Eden区与survivior区比例 eden/s0=eden/s1
  • -XX:PretenureSizeThreshold:设置大对象直接进入老年代的阈值

并行回收器相关:

  • -XX:+UseParNewGC: 新生代使用并行收集器
  • -XX:+UseParallelGC: 新生代使用并行回收收集器
  • -XX:+UseParallelOldGC: 老年代使用并行回收收集器
  • -XX:ParallelGCThreads: 线程数,等于CPU核数(或小于)
  • -XX:MaxGCPauseMillis: 大于0,最大停顿时间
  • -XX:GCTimeRatio: 0~100,吞吐量
  • -XX:+UseAdaptiveSizePolicy: 自适应GC策略

CMS回收器相关:

  • -XX:+UseConcMarkSweepGC: 新生代使用并行收集器,老年代使用CMS+串行收集器
  • -XX:ParallelCMSThreads: 线程数
  • -XX:CMSInitiationgOccupancyFraction: CMS收集器在老年代使用多少时触发。默认68{936b63963a8c9f2b24063da536a495a32039ff9ed9d82cacc18dd4741407c351}
  • -XX:+UseCMSCompactAtFullCollection: CMS收集器完成回收之后是否要整理内存
  • -XX:CMSFullGCsBeforeCompaction: 多少次CMS垃圾回收之后,进行一次内存压缩
  • -XX:+CMSClassUnloadingEnabled: 允许类元数据回收
  • -XX:+CMSParallelRemarkEnabled: 启用并行重标记
  • -XX:CMSInitiatingPermOccupancyFraction: 当永久区占用率到达这个设置时启用CMS回收
  • -XX:UseCMSInitiatingOccupancyOnly:只用到达阈值的时候才进行CMS回收
  • -XX:+CMSincrementalMode: 使用增量模式,适合单CPU

G1回收器相关:

  • -XX:+UseG1GC: 使用G1
  • -XX:+UnlockExperimaentalVMOptions: 允许实验性参数
  • -XX:MaxGCPauseMillis: 最大垃圾收集停顿时间
  • -XX:GCPauseIntervalMillis: 停顿时间间隔

其他:

  • -XX:+DisableExplicitGC: 禁用显式GC

摘抄自《Java程序性能优化》

>> 转载请注明来源:JVM 设置

评论

还没有任何评论,你来说两句吧

发表评论