【问题标题】:OldGen usage goes up after Full GCFull GC 后 OldGen 使用率上升
【发布时间】:2011-01-05 11:31:06
【问题描述】:

尝试使用 VisualVM 1.3 调试 java 程序(在 linux 64 位上运行)中的内存泄漏。

我注意到,每次单击 VisualVM Monitor 选项卡中的“Perform GC”按钮后,旧代内存池的“used”值都会上升……这似乎很违反直觉……

如果“Perform GC”确实触发了只针对年轻代的 GC(因为某些对象可以从年轻代迁移到老代),那将是有意义的......但在完整 GC 的情况下则不然。

有没有人遇到过这种情况?谢谢。

例如。 1) OldGen 初始状态:

峰值使用 已提交:1431 Mb 初始化:1431 MB 最大:1431 Mb 使用:98Mb

用法 已提交:1431 Mb 初始化:1431 MB 最大:1431 Mb 使用:98Mb

2) 执行 GC

3) 新状态:

峰值使用 已提交:1431 Mb 初始化:1431 MB 最大:1431 Mb 使用:105Mb

用法 已提交:1431 Mb 初始化:1431 MB 最大:1431 Mb 使用:105Mb

【问题讨论】:

    标签: java garbage-collection


    【解决方案1】:

    Full GC 似乎也很有可能导致年轻代对象迁移到老一代。你有什么特别的理由不这么认为吗?

    【讨论】:

    • 说得更清楚一点:如果没有垃圾,Full GC 当然不会删除 OldGen 中的任何内容。
    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    相关资源
    最近更新 更多