我公司的支持团队告诉我,当我们打开 -verbose:gc
时,某些版本的 java 会对性能产生重大影响。但是我不知道是否是这种情况。
这个日志记录是否在某个时候很慢(大概),什么时候停止的?
我问的原因是,对于将其应用于生产环境以调查潜在的内存泄漏(以及我们是否可以停止定期重启系统...)有些犹豫。
具体来说,我说的是 Java 1.4.2,我认为它引入了争论,以及它适用于哪些服务包。
最佳答案
我知道您问过 verbose:gc 的影响(Amir 是正确的),但根据评论,我看到您正在调查内存泄漏。
你能得到你的环境的直方图吗? verbose GC 只会告诉你内存泄漏,而不是内存所在的位置。
你提到 java 1.4.2,这是你当前的版本吗?如果您使用的是 1.5 或更高版本,则可以使用
jmap -histo <pid> > file.txt
这将为您提供内存中所有对象的分割。您将卡住 JVM 一段时间,具体取决于系统中的内存量。 (即使是好的硬件,2GB 也可能卡住一分钟左右)首先在开发系统上进行测试。我知道您不想影响您的生产环境,但这是找到问题根源的必要条件。在定期重新启动之前进行捕获以了解您的影响。
关于java - 哪些版本的 java 对于 gc 日志记录很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527236/