gpt4 book ai didi

java - 区域内的 G1GC 压缩

转载 作者:行者123 更新时间:2023-12-03 23:50:11 26 4
gpt4 key购买 nike

据我了解,G1 GC 执行疏散以从年轻区域和旧区域回收堆,这样做会间接压缩堆(将 Activity 对象从要收集的区域复制到空区域)。 G1 GC 是否会出现这样的情况:没有完全空的区域可以复制对象,但半满区域中有足够的碎片堆?我想问一下,G1 是否跟踪区域内的可用空间,并在区域内进行压缩?

最佳答案

HotSpot VM Garbage Collection Tuning GuideAllocation (Evacuation) Failure 中说部分:

If a free (empty) region cannot be found during the evacuation of a region being garbage collected, then an allocation failure occurs (because there is no space to allocate the live objects from the region being evacuated) and a stop-the-world (STW) full collection is done.



这意味着,虽然没有明确说明,STW 完整集合能够执行压缩,否则,它不会解决碎片问题。我只在关于 Humongous Objects and Humongous Allocations 的部分中找到了关于压缩功能的间接提示。 :

To reduce copying overhead, the humongous objects are not included in any evacuation pause. A full garbage collection cycle compacts humongous objects in place.



这并不意味着“G1 会跟踪区域内的可用空间”,因为这将违背默认执行复制的目的,相反,作为过程的一部分,可能会在完整收集期间获取这些必要的信息。

关于java - 区域内的 G1GC 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130227/

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