当我的 Java 应用程序 (Oracle JVM v1.6.0) 启用了 GC 日志记录时,它通常会在退出时打印以下输出:
PSYoungGen total 6429824K, used 5483163K [0x0000000640000000, 0x0000000800000000, 0x0000000800000000)
eden space 5483456K, 99% used [0x0000000640000000,0x000000078eaa6cc0,0x000000078eaf0000)
from space 946368K, 0% used [0x00000007c63d0000,0x00000007c63d0000,0x0000000800000000)
to space 910208K, 0% used [0x000000078eaf0000,0x000000078eaf0000,0x00000007c63d0000)
ParOldGen total 3145728K, used 3145724K [0x0000000580000000, 0x0000000640000000, 0x0000000640000000)
object space 3145728K, 99% used [0x0000000580000000,0x000000063ffff3a0,0x0000000640000000)
PSPermGen total 57984K, used 57686K [0x000000057ac00000, 0x000000057e4a0000, 0x0000000580000000)
object space 57984K, 99% used [0x000000057ac00000,0x000000057e455ae0,0x000000057e4a0000)
有没有一种方法可以在应用程序运行期间定期生成此输出?我知道如何通过 JMX 以编程方式访问内存使用情况?但坦率地说,我希望有一条捷径,而不是重新实现生成上述代码的代码。例如,也许向 JVM 发送终止信号会强制上述输出?