gpt4 book ai didi

java - 如何防止垃圾收集器减慢我的应用程序

转载 作者:行者123 更新时间:2023-12-01 15:38:14 26 4
gpt4 key购买 nike

假设我有一个存在内存泄漏的应用程序。在某些时候,GC 会非常努力地清除内存,并会减慢我的应用程序的速度。我知道如果你为 JVM 设置此参数 -XX:-UseGCOverheadLimit 它将抛出 OutOfMemoryException:

if more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered.

但是这对我来说还不够好。因为即使在这些数字达到之前,我的应用程序也会变得非常慢。在抛出 OutOfMemoryException 之前,GC 会占用 CPU 一段时间。我的目标是以某种方式尽早识别出是否很可能出现问题,然后抛出 OutOfMemory 异常。之后我有某种恢复策略。

现在我已经找到了这两个附加参数 GCTimeLimit 和 GCHeapFreeLimit。使用它们可以调整两个引用的常量(98% 和 2%)。

我自己做了一些测试,比如一小段代码,它会产生内存泄漏并使用这些设置。但我不太确定如何找到正确的权衡。我希望其他人也遇到同样的问题并提出合理的解决方案,或者也许还有其他一些我还不知道的 GC 开关。

我感觉有点失落,因为我并不是这个主题的真正专家,而且似乎有很多东西可以考虑。

最佳答案

如果您使用的是 Sun/Oracle JVM,this页面似乎是一个相当完整的 GC 调整入门。

关于java - 如何防止垃圾收集器减慢我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527637/

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