java - jmap 在 Java 7 下显得更慢,减慢了 JVM

标签 java jmap

我们已经使用 jmap 大约 2 年来测量在 Java 6 下运行的大型多服务器应用程序的堆大小。我们每分钟进行一次测量。每次测量花费的(耗时)不到 1 秒。

我们现在正在 Java 7 下测试同一个应用程序。现在突然间 jmap 经常需要 10 秒、20 秒,有时甚至更长,并且在这段时间内它似乎减慢了(甚至可能停止!)JVM。

我们在 jmap 输出中看到的唯一区别(Java 6 和 Java 7 之间)是关于有多少字符串被驻留的附加信息。 (而且似乎那部分比较慢。)

有谁知道发生了什么,或者 jmap 或 Java 7 中发生了什么变化可能会导致这种情况?

我们正在测试使用“jstat -gc”来获取相同的信息,到目前为止,这似乎要快得多,而且似乎不会导致我们在使用 jmap 时看到的应用程序变慢。对于如何快速测量堆大小,还有其他建议吗?

欢迎任何想法,提前致谢。

最佳答案

我个人比较喜欢Oracle Mission Control用于监视堆大小。它有更多选项,但在监视堆大小方面很有用。

关于java - jmap 在 Java 7 下显得更慢,减慢了 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23703784/

相关文章:

memory - Jmapping 的基础知识?

java - 如何使用 eclipse 和 gradle 对 Java 项目运行 Spock 测试?

java - 在随机方法中测试特定数字时,我得到的结果好坏参半

java - jmap -histo 与 Windows 上的特定对象

Jmap - 连接到远程调试服务器时出错

Java:新生代使用 100%,Eden 空间使用 100%,From 空间使用 100%

Java jmap -heap 命令给出了 OutOfMemoryError

java - JVM 如何运行 if(condition && false) 语句?

java - Hibernate 多对多不起作用

java - BoxLayout 的对齐问题