java - 未记录显式 GC

标签 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 是否未记录?任何指示都深表感谢

最佳答案

FullGC 是 Stop-the-World 标记-扫描-紧凑收集的指示。

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

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

关于java - 未记录显式 GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10944283/

相关文章:

Java 递归 : Example

ruby - Ruby 的 GC.stat 字段是什么意思?

javascript - 为什么 "readFile"方法将文件内容放入内存而不是 "readFileSync"?

python - 一旦没有线程请求它,垃圾收集锁

java - 如何检查java中的日期模式是否有效?

java - 非法参数异常 : object is not an instance of declaring class

java - 减少 Java 垃圾收集时间的关键因素或良好实践有哪些?

java - 这会导致java内存泄漏吗?

java - 列出 JAR 文件内的字符串

java - 中级Java/Python开发人员的项目构想