Java垃圾收集详细信息不工作

Java垃圾收集详细信息不工作,java,garbage-collection,Java,Garbage Collection,我指定了以下详细选项,但JVM没有将任何GC详细信息打印到日志中 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 我使用的是java 1.8.0_05-b13 我尝试了一些排列和组合,发现只有 -verbose:gc works and logs GC to stdout but following doesn't work -

我指定了以下详细选项,但JVM没有将任何GC详细信息打印到日志中

-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode 
-verbose:gc  -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 
我使用的是java 1.8.0_05-b13

我尝试了一些排列和组合,发现只有

-verbose:gc  works and logs GC to stdout but following doesn't work

-verbose:gc  -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:GC.log

-verbose:gc
开关使应用程序将gc详细信息打印到stdout,因此请确保尝试从那里读取它。也可以使用 XLOGGC:GC详图。log < /Cord>将细节打印到实际文件中。

< P>只是猜测,但是J控制台似乎使用JMXbean来钩住JVM,而-VBBOSE:GC只需直接从它的C++代码直接打印到STDUT,并且不提供对java的访问。
本地启动它并查看标准输出以确认或拒绝它。

GC参数作为单个字符串传递给ProcessBuilder。将每个JVM参数作为单独的字符串发送到ProcessBuilder修复了它

你执行了什么代码?当创建了许多实例并丢失了它们的链接时,可能会发生垃圾收集。我可以看到垃圾收集使用jconcole,但没有GC日志。我正在使用log4j将所有stdout重定向到一个文件,因此我希望它出现在那里。Xloggc听起来像是一种更干净的方法,但我甚至没有在stdoutAlso上获取日志,我使用jconsole检查了内存bean,它的verbose属性为false,可能您的应用程序没有生成足够的垃圾。尝试使用非常低的内存值(例如
-Xms2m-Xmx64m
)启动它,以强制GC运行。它正在执行GC。我可以在jconsoleCan中看到,你粘贴正在运行的命令行吗?也许这是操作系统特有的问题。