jvm System.gc()说明
jvm System.gc()说明
System.gc():通知虚拟机进行垃圾回收,触发full gc,对新生代、老年代、元空间进行回收
**********************************
使用Parallel old垃圾收集器时,默认在full gc前会先触发年轻代gc,
可用参数-XX:-ScavengeBeforeFullGC禁止年轻代gc
public class Test {public static void main(String[] args){System.gc();}
}
********************
控制台输出
虚拟机参数:-XX:+UseParallelGC -Xlog:gc*
[0.030s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.032s][info][gc ] Using Parallel****************
新生代gc[0.141s][info][gc,start ] GC(0) Pause Young (System.gc())
[0.142s][info][gc,heap ] GC(0) PSYoungGen: 3328K(38400K)->984K(38400K) Eden: 3328K(33280K)->0K(33280K) From: 0K(5120K)->984K(5120K)
[0.142s][info][gc,heap ] GC(0) ParOldGen: 0K(87552K)->8K(87552K)
[0.142s][info][gc,metaspace ] GC(0) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.142s][info][gc ] GC(0) Pause Young (System.gc()) 3M->0M(123M) 1.521ms
[0.142s][info][gc,cpu ] GC(0) User=0.00s Sys=0.00s Real=0.00s****************
full gc:新生代、老年代、元空间进行垃圾回收[0.142s][info][gc,start ] GC(1) Pause Full (System.gc())
[0.142s][info][gc,phases,start] GC(1) Marking Phase
[0.144s][info][gc,phases ] GC(1) Marking Phase 1.561ms
[0.144s][info][gc,phases,start] GC(1) Summary Phase
[0.144s][info][gc,phases ] GC(1) Summary Phase 0.010ms
[0.144s][info][gc,phases,start] GC(1) Adjust Roots
[0.145s][info][gc,phases ] GC(1) Adjust Roots 0.735ms
[0.145s][info][gc,phases,start] GC(1) Compaction Phase
[0.147s][info][gc,phases ] GC(1) Compaction Phase 2.579ms
[0.147s][info][gc,phases,start] GC(1) Post Compact
[0.147s][info][gc,phases ] GC(1) Post Compact 0.034ms
[0.147s][info][gc,heap ] GC(1) PSYoungGen: 984K(38400K)->0K(38400K) Eden: 0K(33280K)->0K(33280K) From: 984K(5120K)->0K(5120K)
[0.147s][info][gc,heap ] GC(1) ParOldGen: 8K(87552K)->925K(87552K)
[0.147s][info][gc,metaspace ] GC(1) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.147s][info][gc ] GC(1) Pause Full (System.gc()) 0M->0M(123M) 5.075ms
[0.147s][info][gc,cpu ] GC(1) User=0.00s Sys=0.00s Real=0.01s
[0.148s][info][gc,heap,exit ] Heap
[0.148s][info][gc,heap,exit ] PSYoungGen total 38400K, used 1664K [0x00000000d5f00000, 0x00000000d8980000, 0x0000000100000000)
[0.148s][info][gc,heap,exit ] eden space 33280K, 5% used [0x00000000d5f00000,0x00000000d60a01e8,0x00000000d7f80000)
[0.148s][info][gc,heap,exit ] from space 5120K, 0% used [0x00000000d7f80000,0x00000000d7f80000,0x00000000d8480000)
[0.148s][info][gc,heap,exit ] to space 5120K, 0% used [0x00000000d8480000,0x00000000d8480000,0x00000000d8980000)
[0.148s][info][gc,heap,exit ] ParOldGen total 87552K, used 925K [0x0000000081c00000, 0x0000000087180000, 0x00000000d5f00000)
[0.148s][info][gc,heap,exit ] object space 87552K, 1% used [0x0000000081c00000,0x0000000081ce7648,0x0000000087180000)
[0.148s][info][gc,heap,exit ] Metaspace used 625K, capacity 4531K, committed 4864K, reserved 1056768K
[0.148s][info][gc,heap,exit ] class space used 58K, capacity 402K, committed 512K, reserved 1048576K
虚拟机参数:-XX:+UseParallelGC -XX:+ScavengeBeforeFullGC -Xlog:gc*
[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.025s][info][gc ] Using Parallel
[0.129s][info][gc,start ] GC(0) Pause Full (System.gc())
[0.129s][info][gc,phases,start] GC(0) Marking Phase
[0.131s][info][gc,phases ] GC(0) Marking Phase 1.772ms
[0.131s][info][gc,phases,start] GC(0) Summary Phase
[0.131s][info][gc,phases ] GC(0) Summary Phase 0.010ms
[0.131s][info][gc,phases,start] GC(0) Adjust Roots
[0.131s][info][gc,phases ] GC(0) Adjust Roots 0.537ms
[0.131s][info][gc,phases,start] GC(0) Compaction Phase
[0.135s][info][gc,phases ] GC(0) Compaction Phase 3.561ms
[0.135s][info][gc,phases,start] GC(0) Post Compact
[0.135s][info][gc,phases ] GC(0) Post Compact 0.053ms
[0.135s][info][gc,heap ] GC(0) PSYoungGen: 3328K(38400K)->0K(38400K) Eden: 3328K(33280K)->0K(33280K) From: 0K(5120K)->0K(5120K)
[0.135s][info][gc,heap ] GC(0) ParOldGen: 0K(87552K)->924K(87552K)
[0.135s][info][gc,metaspace ] GC(0) Metaspace: 614K(4864K)->614K(4864K) NonClass: 556K(4352K)->556K(4352K) Class: 58K(512K)->58K(512K)
[0.135s][info][gc ] GC(0) Pause Full (System.gc()) 3M->0M(123M) 6.102ms
[0.135s][info][gc,cpu ] GC(0) User=0.00s Sys=0.00s Real=0.01s
[0.136s][info][gc,heap,exit ] Heap
[0.136s][info][gc,heap,exit ] PSYoungGen total 38400K, used 1664K [0x00000000d5f00000, 0x00000000d8980000, 0x0000000100000000)
[0.136s][info][gc,heap,exit ] eden space 33280K, 5% used [0x00000000d5f00000,0x00000000d60a01f0,0x00000000d7f80000)
[0.136s][info][gc,heap,exit ] from space 5120K, 0% used [0x00000000d8480000,0x00000000d8480000,0x00000000d8980000)
[0.136s][info][gc,heap,exit ] to space 5120K, 0% used [0x00000000d7f80000,0x00000000d7f80000,0x00000000d8480000)
[0.136s][info][gc,heap,exit ] ParOldGen total 87552K, used 924K [0x0000000081c00000, 0x0000000087180000, 0x00000000d5f00000)
[0.136s][info][gc,heap,exit ] object space 87552K, 1% used [0x0000000081c00000,0x0000000081ce7170,0x0000000087180000)
[0.136s][info][gc,heap,exit ] Metaspace used 624K, capacity 4531K, committed 4864K, reserved 1056768K
[0.136s][info][gc,heap,exit ] class space used 58K, capacity 402K, committed 512K, reserved 1048576K
说明:使用-XX:-ScavengeBeforeFullGC后,不在full gc前进行年轻代gc
**********************************
System.gc()默认使用并行收集,不会使用并发收集,即使使用G1垃圾收集器时,也会使用并行收集
public class Test {public static void main(String[] args){System.gc();}
}
********************
控制台输出
虚拟机参数:-Xlog:gc*
[0.024s][info][gc,heap] Heap region size: 1M
[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.027s][info][gc ] Using G1
[0.057s][info][gc ] Periodic GC disabled
[0.143s][info][gc,task ] GC(0) Using 3 workers of 8 for full compaction
[0.143s][info][gc,start ] GC(0) Pause Full (System.gc())
[0.143s][info][gc,phases,start] GC(0) Phase 1: Mark live objects
[0.144s][info][gc,phases ] GC(0) Phase 1: Mark live objects 1.117ms
[0.144s][info][gc,phases,start] GC(0) Phase 2: Prepare for compaction
[0.145s][info][gc,phases ] GC(0) Phase 2: Prepare for compaction 0.449ms
[0.145s][info][gc,phases,start] GC(0) Phase 3: Adjust pointers
[0.145s][info][gc,phases ] GC(0) Phase 3: Adjust pointers 0.563ms
[0.145s][info][gc,phases,start] GC(0) Phase 4: Compact heap
[0.146s][info][gc,phases ] GC(0) Phase 4: Compact heap 0.759ms
[0.147s][info][gc,heap ] GC(0) Eden regions: 2->0(2)
[0.147s][info][gc,heap ] GC(0) Survivor regions: 0->0(0)
[0.147s][info][gc,heap ] GC(0) Old regions: 0->2
[0.147s][info][gc,heap ] GC(0) Archive regions: 0->0
[0.147s][info][gc,heap ] GC(0) Humongous regions: 0->0
[0.147s][info][gc,metaspace ] GC(0) Metaspace: 622K(4864K)->622K(4864K) NonClass: 564K(4352K)->564K(4352K) Class: 58K(512K)->58K(512K)
[0.147s][info][gc ] GC(0) Pause Full (System.gc()) 2M->0M(8M) 4.275ms
[0.147s][info][gc,cpu ] GC(0) User=0.02s Sys=0.00s Real=0.00s
[0.148s][info][gc,heap,exit ] Heap
[0.148s][info][gc,heap,exit ] garbage-first heap total 8192K, used 925K [0x0000000081c00000, 0x0000000100000000)
[0.148s][info][gc,heap,exit ] region size 1024K, 1 young (1024K), 0 survivors (0K)
[0.148s][info][gc,heap,exit ] Metaspace used 625K, capacity 4531K, committed 4864K, reserved 1056768K
[0.148s][info][gc,heap,exit ] class space used 58K, capacity 402K, committed 512K, reserved 1048576K
说明:垃圾收集使用的是并行收集
虚拟机参数:-Xlog:gc* -XX:+ExplicitGCInvokesConcurrent
[0.030s][info][gc,heap] Heap region size: 1M
[0.031s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.035s][info][gc ] Using G1
[0.065s][info][gc ] Periodic GC disabled
[0.169s][info][gc,start ] GC(0) Pause Young (Concurrent Start) (System.gc())//使用并发收集
[0.170s][info][gc,task ] GC(0) Using 3 workers of 8 for evacuation
[0.172s][info][gc,phases ] GC(0) Pre Evacuate Collection Set: 0.1ms
[0.172s][info][gc,phases ] GC(0) Merge Heap Roots: 0.1ms
[0.172s][info][gc,phases ] GC(0) Evacuate Collection Set: 1.3ms
[0.172s][info][gc,phases ] GC(0) Post Evacuate Collection Set: 0.4ms
[0.172s][info][gc,phases ] GC(0) Other: 0.4ms
[0.172s][info][gc,heap ] GC(0) Eden regions: 2->0(13)
[0.172s][info][gc,heap ] GC(0) Survivor regions: 0->1(3)
[0.172s][info][gc,heap ] GC(0) Old regions: 0->0
[0.172s][info][gc,heap ] GC(0) Archive regions: 0->0
[0.172s][info][gc,heap ] GC(0) Humongous regions: 0->0
[0.172s][info][gc,metaspace ] GC(0) Metaspace: 603K(4864K)->603K(4864K) NonClass: 548K(4352K)->548K(4352K) Class: 55K(512K)->55K(512K)
[0.172s][info][gc ] GC(0) Pause Young (Concurrent Start) (System.gc()) 2M->0M(128M) 2.465ms
[0.172s][info][gc,cpu ] GC(0) User=0.00s Sys=0.00s Real=0.00s
[0.172s][info][gc ] GC(1) Concurrent Cycle
[0.172s][info][gc,marking ] GC(1) Concurrent Clear Claimed Marks
[0.172s][info][gc,marking ] GC(1) Concurrent Clear Claimed Marks 0.015ms
[0.172s][info][gc,marking ] GC(1) Concurrent Scan Root Regions
[0.173s][info][gc,marking ] GC(1) Concurrent Scan Root Regions 1.103ms
[0.173s][info][gc,marking ] GC(1) Concurrent Mark (0.173s)
[0.173s][info][gc,marking ] GC(1) Concurrent Mark From Roots
[0.173s][info][gc,task ] GC(1) Using 2 workers of 2 for marking
[0.174s][info][gc,marking ] GC(1) Concurrent Mark From Roots 0.475ms
[0.174s][info][gc,marking ] GC(1) Concurrent Preclean
[0.174s][info][gc,marking ] GC(1) Concurrent Preclean 0.102ms
[0.174s][info][gc,marking ] GC(1) Concurrent Mark (0.173s, 0.174s) 0.618ms
[0.174s][info][gc,start ] GC(1) Pause Remark
[0.175s][info][gc ] GC(1) Pause Remark 0M->0M(8M) 1.325ms
[0.175s][info][gc,cpu ] GC(1) User=0.00s Sys=0.00s Real=0.00s
[0.175s][info][gc,marking ] GC(1) Concurrent Rebuild Remembered Sets
[0.175s][info][gc,marking ] GC(1) Concurrent Rebuild Remembered Sets 0.076ms
[0.176s][info][gc,start ] GC(1) Pause Cleanup
[0.176s][info][gc ] GC(1) Pause Cleanup 0M->0M(8M) 0.047ms
[0.176s][info][gc,cpu ] GC(1) User=0.00s Sys=0.00s Real=0.00s
[0.176s][info][gc,marking ] GC(1) Concurrent Cleanup for Next Mark
[0.176s][info][gc,marking ] GC(1) Concurrent Cleanup for Next Mark 0.113ms
[0.176s][info][gc ] GC(1) Concurrent Cycle 3.745ms
[0.177s][info][gc,heap,exit ] Heap
[0.177s][info][gc,heap,exit ] garbage-first heap total 8192K, used 932K [0x0000000081c00000, 0x0000000100000000)
[0.177s][info][gc,heap,exit ] region size 1024K, 2 young (2048K), 1 survivors (1024K)
[0.177s][info][gc,heap,exit ] Metaspace used 608K, capacity 4531K, committed 4864K, reserved 1056768K
[0.177s][info][gc,heap,exit ] class space used 56K, capacity 402K, committed 512K, reserved 1048576K
说明:使用参数-XX:+ExplicitGCInvokesConcurrent后,G1使用并发收集
**********************************
禁用System.gc():垃圾收集器会自动判断垃圾收集,可用参数-XX:+DisableExplicitGC禁用System.gc()
public class Test {public static void main(String[] args){System.gc();}
}
********************
控制台输出
虚拟机参数:-Xlog:gc* -XX:+DisableExplicitGC
[0.024s][info][gc,heap] Heap region size: 1M
[0.024s][info][gc,heap,coops] Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: 32-bit
[0.028s][info][gc ] Using G1
[0.054s][info][gc ] Periodic GC disabled
[0.159s][info][gc,heap,exit ] Heap
[0.159s][info][gc,heap,exit ] garbage-first heap total 131072K, used 2048K [0x0000000081c00000, 0x0000000100000000)
[0.159s][info][gc,heap,exit ] region size 1024K, 3 young (3072K), 0 survivors (0K)
[0.159s][info][gc,heap,exit ] Metaspace used 610K, capacity 4531K, committed 4864K, reserved 1056768K
[0.159s][info][gc,heap,exit ] class space used 55K, capacity 402K, committed 512K, reserved 1048576K
说明:System.gc()没有触发full gc
jvm System.gc()说明相关推荐
- JVM:gc什么时候开始?System.gc()能保证gc一定发生吗?
gc什么时候开始? "你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?" 在什么时候: 1.新生代有一个Eden区和两个survivor区,首先将对象放入Ede ...
- JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
System.gc()的理解 在默认情况下,通过System.gc()或者Runtime. getRuntime ( ).gc ()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试 ...
- java+jvm+log_java9 gc log参数迁移
序 本文主要研究一下java9 gc log参数的迁移. 统一JVM及GC的Logging java9引进了一个统一的日志框架,把gc相关的log输出及配置也给纳入进来了. 相关JEP(JDK Enh ...
- 深入理解JVM(2)——GC算法与内存分配策略
说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如Sca ...
- java的System.gc()的理解
目录 什么是System.gc() 实例1 实例2 什么是System.gc() 1.在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发F ...
- System.gc()调用 - 适用的场景
一.System.gc()调用 System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间.它将尝试释放被丢弃对象占用的内存.然而System.gc()调用附带一个免责 ...
- system.gc 性能_使用这些先进的GC技术提高应用程序性能
system.gc 性能 应用程序性能是我们关注的重点,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开 ...
- 您需要了解的所有有关System.gc()的信息
在本文中,我们试图回答有关System.gc()API调用的最常见问题. 我们希望它会有所帮助. 什么是System.gc()? System.gc()是用Java,Android,C#和其他流行语言 ...
- Java笔记-使用System.gc()进行内存回收
这里注意是这样的,在某个项目里面有30多个java进程,100多个线程,运行30分钟后发现某个进程超级占用资源.第二天再去看的时候,整个系统的java进程占用内存都变小了. 身为C++程序员,对这种现 ...
- System.gc()与Object.finalize()的区别
finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因 ...
最新文章
- nexus 4 下 DualBootInstallation 安装 ubuntu touch
- 与Andrey Breslav谈论Kotlin 1.0的发布
- 两个整数相加 相乘 有符号与无符号 溢出判断条件 移位与2的幂
- 深度学习和目标检测系列教程 12-300:常见的opencv的APi和用法总结
- iOS开发UI篇—懒载入
- Andorid Scrolling Activity(CoordinatorLayout详情)
- 什么都没学到,记录一个鼠标监听事件吧
- vue传递数组对象_详解vue组件三大核心概念
- 小程序优化的20中策略
- Win7中的clr_optimization服务
- 计算机网络2020秋--第四次测验
- 车牌识别:HyperLPR车牌识别代码解析
- Java防御目录穿越漏洞方法_WinRAR目录穿越漏洞复现及防御
- XML的注释踩坑记录
- wap2app是什么
- Python截屏工具,识别屏幕中的二维码
- du和df命令的区别
- 猿如意工具-【SwitchHosts】详情介绍
- 【9】前端实习:react audio播放音乐组件(详细完整代码)
- Python实现rosbag转换成video
热门文章
- 华为热设计工程师待遇_【华为上海研究所工资】热设计工程师待遇-看准网
- java怎样生成epub文件_如何使用java.util.zip进行epub
- 【NOIP提高组五校联考】挖金矿
- 使用winfrom调用BarTender实现标签的打印
- 在GEE平台提取Sentinel-1 SAR GRD的VV+VH波段
- 阿里云域名解析ip地址变更后不起作用
- 旋转矩阵的导数(机器人学)
- excel 第3讲:查找、替换与定位
- java求闰年_JAVA中怎么计算闰年
- V2VNet: Vehicle-to-Vehicle Communication for Joint Perception and Prediction