gpt4 book ai didi

java - 峰值内存使用不超过限制

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:31 25 4
gpt4 key购买 nike

我看到使用 -Xmx2g 时,峰值内存达到 1G 并执行主要收集(marksweep 收集器)。使用 -Xmx3g 时,它达到 1.5G 并进行主要收集。使用-Xmg4g,它达到 2G 并进行主要收集。但是,从这里我尝试将最大内存增加到 6G、8G、12G,并且每次峰值内存达到 2G 时都会进行主要收集。

如何让它超越2G使用?我没有遇到任何设置。 -Xms 在这里重要吗?对于那些 -Xmx,我将 -Xms 设为 -Xmx 的一半。

我正在使用 Jetty,Java 1.6.024。

更新:是的,我使用的是 64 位 JVM。我使用的 JVM 选项是:-Xmx6g -Xms3g -XX:MaxPermSize=256m我确定峰值内存的方法是查看 JConsole 中的内存图。达到2G就掉线(major collection)。 Old Gen 达到 1.5G max,然后发生下降。

谢谢,婴儿车。

最佳答案

您有三个内存区域,eden、survivor 和 tenured 空间。

我怀疑正在发生的事情是,随着您增加最大大小,tenured 或 eden 空间没有增长。

这两个区域很重要的原因是当 tenured 空间填满时触发 Full GC(我怀疑这个大小正在增长)当 eden 空间填满并且幸存者空间中没有足够的空间来复制所有剩余的对象时, 也会触发 full GC。

如果这是您的问题的原因,您正在创建大量的中等生命周期对象,这可能是一个性能问题,除非您可以减少创建的数量。另一种方法是指定一个更大的新大小,从而增加伊甸园的大小。

尝试 -mx12g -XX:NewSize=10g - verbosegc

最后一个选项将为您提供清理后各个空间的大小。

关于java - 峰值内存使用不超过限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com