加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如果我增加内存堆,它会增加GC时间

发布时间:2020-12-15 05:06:16 所属栏目:Java 来源:网络整理
导读:我当前的应用程序在2GB内存正常GC循环上运行. 我想将JVM内存增加到4GB以提高应用程序性能. 会不会加速GC的时间?如果是,将会影响多少性能.调整GC是他们的任何好的艺术吗? 解决方法 简答 是的,时间会增加.更大的堆=更长的暂停时间 答案很长 有几个因素需要考
我当前的应用程序在2GB内存正常GC循环上运行.

我想将JVM内存增加到4GB以提高应用程序性能.

会不会加速GC的时间?如果是,将会影响多少性能.调整GC是他们的任何好的艺术吗?

解决方法

简答

是的,时间会增加.更大的堆=更长的暂停时间

答案很长

有几个因素需要考虑.您是如何配置GC运行的?你的年轻一代有多大?你多久看一次GC的完整版?

如果您很少看到完整的GC,则差异可以忽略不计.如果将GC活动记录到日志中,则可以看到部分GC的暂停时间非常快.部分GC上2GB和4GB之间的差异大约为0.1s.要记录GC活动,可以使用以下参数-XX:PrintGCDetails -verbose:gc -Xloggc:/log/path/gc.log.有许多工具可以为您读取此GC日志,提供图表和统计信息,如吞吐量和总暂停时间.

如果您经常看到Full GC,那就是为什么要添加更多内存,那么您可能需要考虑分析应用程序而不是看看是什么占用了所有内存.使用更大的堆,这些问题只会导致更长的GC,直到您解决潜在的问题.

最后,您需要尝试各种配置,正确测试并将最适合您的生产环境放入生产环境中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读