gpt4 book ai didi

java - 如何优化Java堆中未使用的空间

转载 作者:搜寻专家 更新时间:2023-11-01 02:37:13 24 4
gpt4 key购买 nike

不要相信我的话。我只是重复我从不同来源拼凑出来的内容。 HotSpot JVM 使用线程本地分配缓冲区 (TLAB)。 TLAB 可以同步也可以不同步。大多数时候 TLAB 不是同步的,因此线程可以非常快速地分配。这些 TLAB 的数量很多,以便 Activity 线程获得自己的 TLAB。不太活跃的线程共享一个同步的 TLAB。当线程耗尽其 TLAB 时,它会从池中获取另一个 TLAB。当池中的 TLAB 耗尽时,就会触发或需要 Young GC。

当池用完 TLAB 时,仍然会有剩余空间的 TLAB。这个“未使用的空间”加起来很重要。可以看到此空间是因为在达到保留堆大小或最大堆大小之前触发了 GC。因此,堆实际上缩小了 10-30%。至少这是我根据堆使用情况图做出的猜测。

如何调整 JVM 以减少未使用的空间?

最佳答案

您可以使用命令行选项 -XX:TLABSize 调整该设置

然而,与大多数这些“深层次和肮脏”的设置一样,您在更改这些设置时应该非常小心,并密切监控更改的效果。

关于java - 如何优化Java堆中未使用的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613468/

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