未记录显式GC

时间:2012-06-08 06:53:21

标签: java garbage-collection

我正在使用以下标志启动java 1.6.0.32实例

set JAVA_OPTS=%JAVA_OPTS% -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseBiasedLocking -XX:+ExplicitGCInvokesConcurrent
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCTimeStamps
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationConcurrentTime
set JAVA_OPTS=%JAVA_OPTS% -Xloggc:gc.log
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintHeapAtGC
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError
set JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath=heap-dump.core
set JAVA_OPTS=%JAVA_OPTS% -server -XX:MaxTenuringThreshold=8 -XX:+CMSIncrementalMode 
set JAVA_OPTS=%JAVA_OPTS% -XX:+CMSIncrementalPacing -XX:+DoEscapeAnalysis 
set JAVA_OPTS=%JAVA_OPTS% -XX:+OptimizeStringConcat
REM set JAVA_OPTS=%JAVA_OPTS% -XX:+UseCompressedOops REM for 64 bit only
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseCompressedStrings -XX:+UseFastAccessorMethods 
set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution -XX:+UseStringCache 
set JAVA_OPTS=%JAVA_OPTS% -verbose:gc

我在应用初始化后明确请求完整垃圾回收,并等待它使用this技术完成。我已经确认堆使用jvisualvm大幅压缩,但是完整的GC似乎没有登录我的gc日志。我已经为“Full GC”而努力,没有任何结果。 请注意,-XX:+DisableExplicitGC已关闭。我做错了吗?显式GC是否未记录?任何指针都深表赞赏

2 个答案:

答案 0 :(得分:1)

FullGC表示Stop-the-World mark-sweep-compact collection。

您正在使用-XX:+ExplicitGCInvokesConcurrent,此标志告诉JVM在调用System.gc()时使用并发集合而不是STW。

您可以在this文章中查看并发收集器(CMS)的日志示例。

答案 1 :(得分:0)

我一直认为DisableExplicitGC禁用了显式GC,所以你不应该在日志中看到任何内容。

您似乎忙于等待其他事件触发GC。