详细的Java GC日志

mch*_*chr 5 java garbage-collection

当使用以下args时,sun JVM将详细的GC日志输出到StdOut.

 -verbose:gc
 -XX:+PrintGCTimeStamps
 -XX:+PrintGCDetails
Run Code Online (Sandbox Code Playgroud)

但是,我不希望StdOut中的输出,我真的不需要每个GC的细节.是否可以以编程方式访问用于这些日志的数据?我希望能够记录我自己的日志文件分配/收集的内存量,理想情况下是平均对象大小.

fvu*_*fvu 4

你需要添加

-Xloggc:log_file_name
Run Code Online (Sandbox Code Playgroud)

每次 JVM 启动时,该文件都会重新初始化,因此如果您想保留它以供分析,请不要忘记将其移至安全位置。

可以在此处找到Java 6 的许多命令行选项的完整列表。

  • 从 JVM 1.6.0_34 开始,您可以让 java 轮转日志。`-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=<文件数量> -XX:GCLogFileSize=<大小>` 请注意,所有三个选项都是必需的。其他提示:http://jyates.github.io/2012/11/05/rolling-java-gc-logs.html (2认同)