gpt4 book ai didi

操作系统内存不足时的 JVM 行为

转载 作者:行者123 更新时间:2023-12-02 17:43:12 27 4
gpt4 key购买 nike

我想知道以下情况下 JVM 的行为是什么:

  • JVM 最小堆大小 = 500MB
  • JVM 最大堆大小 = 2GB
  • 操作系统有 1GB 内存

JVM启动后,程序运行一段时间后,使用内存超过1GB。我想知道是否会立即发生 OOM 还是先尝试 GC!

最佳答案

这取决于您有多少交换空间。

如果没有足够的可用交换空间,JVM 将无法启动,因为它无法分配足够的虚拟内存。

如果您有足够的可用交换空间,您的程序就可以启动并运行。然而,一旦 JVM 开始交换其堆,GC 时间就会急剧增加。 GC 假设它可以稍微随机地访问堆。

如果您的堆无法容纳在主内存中,则程序(甚至可能是机器)将变得无法使用。根据我的经验,在 Windows 上,此时需要重新启动。在 Linux 上,我通常发现我可以终止该进程。

简而言之,您也许能够启动 JVM,但这是一个坏主意。

关于操作系统内存不足时的 JVM 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297069/

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