JVM-常用Java虚拟机GC参数

导读:本篇文章讲解 JVM-常用Java虚拟机GC参数,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1. 常用Java虚拟机GC基础参数
-XX:+PrintGC 使用该参数启动JVM后,只要遇到GC,就会打印日志。

-XX:+PrintGCDetails 更加详细的GC信息、

-XX:+PrintHeapAtGC 在GC日志输出前后,输出详细的堆信息。

-XX:+PrintGCTimeStamps 在每次GC发生时,额外输出GC发生的时间,该时间为虚拟机启动后的时间偏移量。

-XX:+PrintGCApplicationConcurrentTime 打印应用程序的执行时间

-XX:+PrintGCApplicationStoppedTime 打印应用程序由于GC而产生的停顿时间

-XX:+PrintReferenceGC 跟踪系统内的软引用,弱引用,虚引用和Finalize队列

-Xloggc:log/gc.log 在当前目录下的log文件夹生成gc.log记录所有的GC日志

-verbose:class 跟踪类的加载和卸载

-XX:+TraceClassLoading 跟踪类的加载

-XX:+TraceClassUnloading 跟踪类的卸载

-XX:+PrintClassHistogram 在运行时查看系统中类的分布情况,在Java控制台按Ctrl+Break组合键,控制台就会显示当前的类信息柱状图。

-XX:+PrintVMOptions 在程序运行时,打印虚拟机接受到的命令行显示参数

-XX:+PrintCommandLineFlags 打印传递给虚拟机的显示和隐式参数,参数未必是通过命令行给出的,也可能是由虚拟机启动时自行设置的。

-XX:PrintFlagsFinal 打印所有的系统参数值

2. 与串行回收器相关的参数
-XX:+UseSerialGC:在新生代和老年代使用串行收集器

-XX:SurvivorRatio:设置eden区大小和survivor区大小的比例

-XX:PretenureSizeThreshold:设置大对象直接进入老年代的阈值,当对象的大小超过这个值时,将直接在老年代分配

-XX:MaxTenuringThreshold:设置对象进入老年代的年龄的最大值,每一次Minor GC后,对象年龄就加一。任何大于这个年龄的对象,一定会进入老年代

3. 与并行回收器相关的参数
-XX:+UseParNewGC:在新生代使用并行收集器

-XX:+UseParallelOldGC:老年代使用并行回收器

-XX:+ParallelGCThreads:设置用于垃圾回收的线程数,通常情况下可以和CPU的数量相等,在CPU的数量较多的情况下,设置相对较小的数值也可以的

-XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间,它的值是一个大于0的整数。收集器在工作时,会调整堆大小或者其他相关参数,尽可能的讲停顿时间控制在这个值内

-XX:GCTimeRatio:设置吞吐量的大小,它的值是一个1~100之间的整数,如果这个值为n,系统将花费不超过1/(1+n)的时间用于垃圾回收

-XX:+UseAdaptiveSizePolicy:打开自适应GC策略,在这种模式下,新生代的大小,eden和survivor的比例,晋升老年代的对象年龄参数会自动调整,以达到在堆大小、吞吐量和停顿时间的平衡点

4. 与CMS回收器相关的参数
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器

-XX:ParallelCMSThreads:设置CMS的线程数量

-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发,默认是68%

-XX:+UseCMSCompactAtFullCollection:设置CMS在完成垃圾收集后是否进行一次内存碎片整理

-XX:CMSFullGCsBeforeCompaction:设置在进行多少次CMS垃圾收集后,进行一次内存压缩

-XX:+CMSClassUnloadingEnabled:允许对类元数据区进行回收

-XX:CMSInitiatingPermOccupancyFraction:当永久区占有率达到这一百分比时,启动CMS回收(前提是-XX:+CMSClassUnloadingEnabled打开的)

-XX:UseCMSInitiatingOccupancyOnly:表示只在到达阈值的时候才进行CMS回收

-XX:+CMSIncrementalMode:使用增量模式,比较适合单CPU,该模式在JDK8被标记为废弃,在JDK9中将移除

5. 与G1回收器相关的参数
-XX:+UseG1GC:使用G1回收器

-XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间

-XX:GCPauseIntervalMillis:设置停顿间隔时间

6. 与TLAB相关
-XX:+UseTLAB:使用TLAB

-XX:+PrintTLAB:打印TLAB分配相关信息

-XX:TLABSize:设置TLAB大小

-XX:+ResizeTLAB:自动调整TLAB大小

7. 其他参数
-XX:+DisableExplictGC:禁用显示GC

-XX:+ExplicitGCInvokesConcurrent:使用并发方式处理显示GC
——————— 
作者:数数1234 
来源:CSDN 
原文:https://blog.csdn.net/l2580258/article/details/79830439 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/72573.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!