Prefer larger region when retaining

This commit is contained in:
Xiaolong Peng 2026-06-02 20:41:40 -07:00
parent 91c9d4d569
commit 75bb2bcf8d

View File

@ -155,8 +155,10 @@ HeapWord* ShenandoahPartitionAllocator<PARTITION>::allocate_in(ShenandoahHeapReg
if (_retained_region == r) {
_retained_region = nullptr;
}
} else if (_retained_region == nullptr) {
} else if (_retained_region == nullptr || _retained_region->free() < r->free()) {
// Region still has usable capacity — retain for next allocation.
// Prefer whichever has more free space so a small retained region doesn't starve
// out a larger fresh one.
_retained_region = r;
}