JAVA GC日志输出

本文深入探讨了Java垃圾回收(GC)的工作原理及关键参数配置,包括GC时间、耗时、用户态耗时、系统态耗时、并行GC、标记扫描GC等核心概念。同时介绍了如何通过调整参数来优化GC性能,实现更高效的内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2014-09-09T09:45:41.560+0800: 336279.264: [GC2014-09-09T09:45:41.560+0800: 336279.264: [ParNew: 136477K->167K(153344K), 0.0245680 secs] 151436K->15125K(2080128K), 0.0248620 secs] [Times: user=0.05 sys=0.00, real=0.03 secs]


[GC2014-09-09T09:45:41.560+0800: 336279.264: [ParNew: 136477K->167K(153344K), 0.0245680 secs] 151436K->15125K(2080128K), 0.0248620 secs]

这里面表示:[GC时间:[ParNew区的gc情况:136477K到167K,回收了153344Kk,用时0.024秒]


GC的格式,用形式化描述


S ::= [TIME:[GC代情况]+,耗时][Times:用户态耗时,系统态耗时,实际总耗时]
GC代情况 ::= GC代标志:回收前大小->回收后大小(总大小)


即,一个总分的结构,显示GC总体情况,里面包含了各类GC的具体情况。


[url]http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html[/url]
GC参数:
-XX:MinHeapFreeRatio=40 -XX:MaxHeapFreeRatio=70 -Xms3670k -Xmx64m


The Young Generation


-XX:+UseParallelGC 并行GC
-Xincgc ™
-XX:+UseConcMarkSweepGC

Note that -XX:+UseParallelGC should not be used with -XX:+UseConcMarkSweepGC .
并行GC和标记扫描GC不能同时使用。

-XX:ParallelGCThreads=<desired number> :指定并行GC的线程数量


-XX:MaxGCPauseMillis=<nnn>最大GC暂停时间毫秒数
-XX:GCTimeRatio=<nnn> ;1 / (1 + <nnn>)


-XX:YoungGenerationSizeIncrement=<nnn > for the young generation and -XX:TenuredGenerationSizeIncrement=<nnn> for the tenured generation. The percentage by which a generation shrinks is adjusted by the command line flag -XX: AdaptiveSizeDecrementScaleFactor=<nnn >. If the size of an increment for growing is XXX percent, the size of the decrement for shrinking will be XXX / nnn percent.


标记扫描GC的参数列表:
-XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalMode \
-XX:+CMSIncrementalPacing \
-XX:CMSIncrementalDutyCycleMin=0 \
-XX:+CMSIncrementalDutyCycle=10 \
-XX:+PrintGCDetails \
-XX:+PrintGCTimeStamps \
-XX:-TraceClassUnloading
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值