什么版本的Java对于gc日志记录来说很慢?

Ste*_*hen 4 java performance logging garbage-collection jvm

我公司的支持团队告诉我,当我们打开时,某些版本的Java会对性能产生重大影响-verbose:gc.但是,我无法弄清楚是否是这种情况.

这个记录在某个时刻是否缓慢(ish),何时停止?

我问的原因是,对于将其应用于生产环境以调查潜在的内存泄漏(以及我们是否可以停止定期重启系统......)存在一些犹豫.

具体来说,我在谈论Java 1.4.2,我认为它引入了这个论点,以及它适用的服务包.

Sea*_*ean 5

我知道你问过verbose的影响:gc(Amir是正确的),但根据评论,我看到你正在调查内存泄漏.

您是否有可能获得环境的直方图?详细GC只会向您显示内存泄漏,而不是内存所在的位置.

你提到java 1.4.2,那是你当前的版本吗?如果您使用1.5或更高版本,则可以使用

jmap -histo <pid> > file.txt
Run Code Online (Sandbox Code Playgroud)

这将为您提供内存中所有对象的细分.您将冻结JVM一段时间,具体取决于系统中的内存量.(即使是好的硬件,2GB也可以冻结一分钟左右)首先在开发系统上进行测试.我知道你不想影响你的生产环境,但这是找到问题根源的必要条件.在定期重启之前进行捕获以吸取影响.