7款垃圾回收器

串行回收器:Serial,Serial Old
并行回收器:ParNew,Parallel Scavenge,Parallel Old
并发回收器:CMS ,G1

垃圾收集器与那垃圾分代之间的关系

新生代收集器:Serial,ParNew,Parallel Scavenge
老年代收集器:Serial Old,Parallel Old,CMS
整堆收集器:G1

在这里插入图片描述

使用场景:
同时注重吞吐量(Throughput)和低延迟(Low latency),默认的暂停目标是 200 ms
超大堆内存,会将堆划分为多个大小相等的 Region
整体上是 标记+整理 算法,两个区域之间是 复制 算法

相关 JVM 参数
-XX:+UseG1GC
-XX:G1HeapRegionSize=size
-XX:MaxGCPauseMillis=time

如何查看默认的垃圾回收器

-XX:+PrintCommandLineFlags:查看命令行相关参数(包含使用的垃圾回收器)
使用命令行指令:jion -flag 相关垃圾回收期参数 进程id
在这里插入图片描述
在IDEA控制台可以看出使用的gc是:ParallelGC,那么对应的老年代的gc就是ParallelGC Old GC
在这里插入图片描述
当我们使用jinfo来查看jvm信息,jdk1.8使用的垃圾回收器是UseParallelGC和UseParallelOldGC
命令:
jinfo [option] pid
选项

  • option具体选项及作用如下:

  • -flags 查看jvm的参数

  • -sysprops 查看java系统参数

-flag [+|-] 修改正在运行的Java应用程序JVM参数,其中+是开启对应参数,-是关闭对应参数

D:\BaiduNetdiskDownload\谷粒商城\jvm\代码\JVMDemo>jps
7440 Jps
3988
10824 Launcher
9180 GCUseTest

D:\BaiduNetdiskDownload\谷粒商城\jvm\代码\JVMDemo>jinfo -flag UseParallelGC 9180
-XX:+UseParallelGC

D:\BaiduNetdiskDownload\谷粒商城\jvm\代码\JVMDemo>jinfo -flag UseParallelOldGC 9180
-XX:+UseParallelOldGC

垃圾收集器的选择:
如果你想最小化使用内存和并行开销,请选serial GC
如果你想要最大化应用程序的吞吐量(吞吐量),请选Parallel GC
如果你想最小化GC中断和停顿时间(低延迟),请选CMS GC

猜你喜欢

转载自blog.csdn.net/u014496893/article/details/114628171