java - 哪些版本的 java 对于 gc 日志记录很慢?

标签 java performance logging garbage-collection jvm

我公司的支持团队告诉我,当我们打开 -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/

相关文章:

performance - 帮助提高网站性能,尤其是在 IE8 中

python - 禁用根记录器的输出

mysql - 是否有用于在 mysql 中存储 rails 日志的 gem?

java - Camel 日志组件

java - 处理更改 groupID 的 Artifact 和传递依赖风险

java - Spring Hibernate Integration jar 真正需要什么

c# - SQLite:.Net 比原生慢很多?

java - 从启动脚本设置类路径不起作用

java - i == (i = 2) 的结果是什么?

c# - Socket Send方法...用一个方法发送大量数据可以吗?