2

有没有办法查看 JVM 中哪个特定代(伊甸园、旧等)中有哪些特定对象?我试图找出一种方法来查看哪些对象存在问题。我正在使用 JProfiler,记录内存会在任何时候告诉你实时和 GCed 对象,但不会告诉你对象在哪几代。还有其他工具可以告诉你吗?我似乎也找不到任何这样的 GC 调试选项。

附带说明一下,使用 JProfiler 记录内存似乎对应用程序有太多开销,因此要么我无法长时间记录内存(快速达到峰值内存),要么开销以某种方式干扰/影响应用程序行为。还有,记录记忆。对此有任何建议(我是否缺少开关以避免这种情况)?我通常选择动态仪器选项,但据我所知,我使用采样的几次也有相同的效果。

4

2 回答 2

0

启用 jvm 标志以打印 GC: -XX:-PrintGCDetails 在垃圾收集时打印更多详细信息。可管理。(在 1.4.0 中引入。)

您可以做的另一件事是使用带有可视 GC 插件的 JVisualVM(在 jdk1.6 中构建):http: //visualvm.java.net/plugins.html

于 2012-04-05T15:24:56.170 回答
0

yourkit能够做你想做的事。更准确地说,您可以看到次要和主要垃圾收集。

编辑: SO中的一些人同意我的看法。 哪个 Java 分析器更好:JProfiler 还是 YourKit?

于 2012-04-05T15:18:24.097 回答