【发布时间】:2023-03-10 11:44:01
【问题描述】:
我有很长的 GC 周期。
从检查中我看到堆的永久(旧)区域中有太多对象。
是否有任何实用程序可以知道哪些对象位于堆的哪个区域,或者关于这些对象的任何静态信息。
我正在使用 Sun/Oracle HotSpot JVM (Java 6)。
编辑:关于我的问题的更多细节:
我有一个大堆(32GB),看起来即使堆旧区域只有 30% 已满,手动运行 GC 也会暂停 15 秒。我想知道哪些对象是留在旧区的“幸存者”,以便知道要优化哪个对象创建。
【问题讨论】:
-
我只用过Visualvm、Visualgc和Jconsole。我不记得其中任何一个可以列出终身对象。他们会给你一些关于终身职位的统计数据。所以我只推荐这篇文章java.sun.com/docs/hotspot/gc/index.html和+1
-
你的全套JVM启动参数是什么?
-
浏览这篇博文可能对偶然发现这个问题的人有用 -> blogs.oracle.com/poonam/…
标签: java garbage-collection jvm heap-memory