我刚刚获得了有关使用 GC 调优提高性能的信息。
我正在尝试打印如下所示的 GC 日志,Test 是我的类文件。
java -Xms2m -Xmx64m -XX:+PrintGCDetails 测试
和
java -Xms2m -Xmx64m -XX:+UseSerialGC -XX:+PrintGCDetails 测试
每次我收到以下格式的 GC 日志时
Heap
def new generation total 1152K, used 347K [0x00000000f6e00000, 0x00000000f6f40000, 0x00000000f8350000)
eden space 1024K, 33% used [0x00000000f6e00000, 0x00000000f6e56f68, 0x00000000f6f00000)
from space 128K, 0% used [0x00000000f6f00000, 0x00000000f6f00000, 0x00000000f6f20000)
to space 128K, 0% used [0x00000000f6f20000, 0x00000000f6f20000, 0x00000000f6f40000)
tenured generation total 768K, used 0K [0x00000000f8350000, 0x00000000f8410000, 0x00000000fae00000)
the space 768K, 0% used [0x00000000f8350000, 0x00000000f8350000, 0x00000000f8350200, 0x00000000f8410000)
compacting perm gen total 21248K, used 2345K [0x00000000fae00000, 0x00000000fc2c0000, 0x0000000100000000)
the space 21248K, 11% used [0x00000000fae00000, 0x00000000fb04a620, 0x00000000fb04a800, 0x00000000fc2c0000)
No shared spaces configured.
我还尝试使用 -XX:+PrintGCTimeStamps vm 参数,但它打印相同的输出。
从现在开始,我已经在尝试理解谷歌中的这些日志。
谷歌中解释的格式是
8109.128: [GC [PSYoungGen: 109884K->14201K(139904K)] 691015K->595332K(1119040K), 0.0454530 secs]
我能理解。
问题
1)如何以我稍后提到的格式打印GC日志。
2)谁能解释一下我得到的日志吗?
最佳答案
是的.... 我自己搞定的
我错误地认为 GC 正在发生,但实际上并没有发生,所以它向我显示了不同代中使用的空间,
当我运行测试应用程序时,我的应用程序足够小,不会导致 GC。 我在代码中插入了 System.gc() 以满足某些条件并获得了预期的 GC 日志。
[GC 645K->288K(121344K), 0.0042354 secs]
[Full GC 288K->238K(121344K), 0.0219605 secs]
关于java - 这些GC日志意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497725/