java - 这些GC日志意味着什么?

标签 java garbage-collection

我刚刚获得了有关使用 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/

相关文章:

java - Tomcat Java Web 应用程序运行缓慢

java - 如何从Java中的多个方法中进行绘制?

java - JUnit错误我该如何解决?

java - JVM 何时将成员变量引用存储在堆栈上?

java - 如何真正对 Java 应用程序的内存使用情况进行基准测试

python局部变量奇怪的行为

java - 是否可以通过 Selenium RC 加载外部 javascript?

python - 为什么要重新初始化多进程工作人员?

android - 如何停止在三星手机上创建过多的对象?

java - 启用/禁用另一个类的表单按钮