gpt4 book ai didi

java - 与 JVM 进行的常规 GC 调整相比,JProfiler "Run GC"按钮用于清理垃圾有何作用

转载 作者:行者123 更新时间:2023-11-30 02:14:20 25 4
gpt4 key购买 nike

我的 Java 企业应用程序几天来消耗了更多内存,即使 GC 正在运行并且我们设置了足够的参数 (ConcMarkSweepGC),它也没有释放完整的内存。

当我附加 JProfiler 时,可以观察到,每当 GC 运行时,它只会清除,假设它消耗 9GB,则只有大约 1 到 1.2 GB 被清除。同时,如果我单击 JProfiler 附带的“运行 GC”按钮,它会清除占用的 9 GB 中的至少 6-7 GB。

我试图了解 Jprofiler GC 与应用程序执行的常规 GC 相比有何额外作用。

以下是所需的一些详细信息:- 应用服务器:Wildfly 9- Java版本:Java 8- 操作系统:Windows 2012 - 64 位

任何有关此问题的帮助都会有所帮助。提前致谢。

最佳答案

不同 GC 算法的行为有所不同,但原则上旧空间上的 GC 不应始终清除所有未使用的内存。在新空间中,我们看到一个复制并行 GC 来对抗内存碎片,但旧空间应该要大得多。运行这样的 GC 会导致长时间的 stop-the-world 暂停。您选择了 ConcMarkSweepGC,它是一个并发 GC,如果有足够的可用内存,它不会尝试执行完整的 stop-the-world GC 循环。您可能使用 JProfiler 在旧空间上启动了完全停止世界的 GC。

如果您想详细了解它,请阅读 JVM 中不同的 GC 算法。其中有很多,并且它们的设计考虑了不同的目标。

关于java - 与 JVM 进行的常规 GC 调整相比,JProfiler "Run GC"按钮用于清理垃圾有何作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059078/

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