JVM系列笔记目录
- 虚拟机的基础概念
 - class文件结构
 - class文件加载过程
 - jvm内存模型
 - JVM常用指令
 - GC与调优
 
GC常用参数
- -Xmn -Xms -Xmx -Xss 年轻代 最小堆 最大堆 栈空间
 - -XX:+UseTLAB 使用TLAB,默认打开
 - -XX:+PrintTLAB 打印TLAB的使用情况
 - -XX:TLABSize 设置TLAB大小
 - -XX:+DisableExplictGC 禁止代码中显示调用GC
 - -XX:+PrintGC 打印GC情况
 - -XX:+PrintGCDetails 打印GC详细过程
 - -XX:+PrintHeapAtGC 在打印GC过程中打印机堆情况
 - -XX:+PrintGCTimeStamps 打印GC时间戳
 - -XX:+PrintGCApplicationConcurrentTime (低) 打印应用程序时间
 - -XX:+PrintGCApplicationStoppedTime低) 打印暂停时长
 - -XX:+PrintReferenceGC (重要性低) 记录回收了多少种不同引用类型的引用
 - -verbose:class 类加载详细过程
 - -XX:+PrintVMOptions 打印虚拟机的参数
 - -XX:+PrintFlagsFinal 打印机最终的参数
 - -XX:+PrintFlagsInitial 打印机初始的参数
 - -Xloggc:opt/log/gc.log 指定GC存储的路径
 - -XX:MaxTenuringThreshold 指定升代年龄,最大值15
 - -XX:PreBlockSpin 锁自旋次数
 - -XX:CompileThreshold 热点代码检测参数
 
Parallel常用参数
- -XX:SurvivorRatio survivor区比例
 - -XX:PreTenureSizeThreshold 指定大对象到底多大
 - -XX:MaxTenuringThreshold 指定升代年龄,最大值15
 - -XX:+ParallelGCThreads 并行收集器的线程数,同样适用于CMS,一般设为和CPU核数相同
 - -XX:+UseAdaptiveSizePolicy 自动选择各区大小比例
 
CMS常用参数
- -XX:+UseConcMarkSweepGC 使用CMS垃圾回收器
 - -XX:ParallelCMSThreads CMS线程数量
 - -XX:CMSInitiatingOccupancyFraction 使用多少比例的老年代后开始CMS收集,默认是68%(近似值),如果频繁发生SerialOld卡顿,应该调小
 - -XX:+UseCMSCompactAtFullCollection 在FGC时进行压缩
 - -XX:CMSFullGCsBeforeCompaction 多少次FGC之后进行压缩
 - -XX:+CMSClassUnloadingEnabled CMS运行类卸载
 - -XX:CMSInitiatingPermOccupancyFraction CMS达到什么比例时进行Perm回收
 - GCTimeRatio 设置GC时间占用程序运行时间的百分比
 - -XX:MaxGCPauseMillis 停顿时间,是一个建议时间,GC会尝试用各种手段达到这个时间,比如减小年轻代
 
G1常用参数
- -XX:+UseG1GC 使用G1
 - -XX:MaxGCPauseMillis 建议值,G1会尝试调整Young区的块数来达到这个值
 - -XX:+G1HeapRegionSize 分区大小,建议逐渐增大该值,1 2 4 8 16 32M; 随着size增加,垃圾的存活时间更长,GC间隔更长,但每次GC的时间也会更长
 - G1NewSizePercent 新生代最小比例,默认为5%
 - G1MaxNewSizePercent 新生代最大比例,默认为60%
 - GCTimeRatio GC时间建议比例,G1会根据这个值调整堆空间
 - ConcGCThreads 线程数量
 - InitiatingHeapOccupancyPercent 启动G1的堆空间占用比例
 
知识分享,转载请注明出处。学无先后,达者为先!
 
 
 