Integrated: 8358586: ZGC: Combine ZAllocator and ZObjectAllocator
Joel Sikström
jsikstro at openjdk.org
Tue Jul 29 10:25:07 UTC 2025
On Mon, 9 Jun 2025 11:45:00 GMT, Joel Sikström <jsikstro at openjdk.org> wrote:
> Hello,
>
> After [JDK-8353184](https://bugs.openjdk.org/browse/JDK-8353184), ZAllocator has essentially become a mirror of ZObjectAllocator, questioning the relevance of ZAllocator. The purpose of this RFE is to combine ZAllocator and ZObjectAllocator into a single class ZObjectAllocator.
>
> The solution I propose moves the new ZObjectAllocator as a data member in ZHeap, and is accessed solely from ZHeap. ZObjectAllocator stores a number of allocators, one for each age. Instead of storing eden and relocation allocators separately, all allocators are now in a single array, which makes it more straightforward to iterate over all allocators (when retiring pages for example). Since the underlying allocator (called PerAge) needs to be constructed with different ages, we can't use the default constructor/initialization, so I have a solution in-place for dealing with this.
>
> Undoing an object allocation has been moved in its entirety (not calling into ZObjectAllocator) to ZHeap, where it fits much better.
>
> Testing:
> * Oracle's tier 1-5
This pull request has now been integrated.
Changeset: 965b6810
Author: Joel Sikström <jsikstro at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/965b68107ffe1c1c988d4faf6d6742629407451b
Stats: 603 lines in 14 files changed: 250 ins; 268 del; 85 mod
8358586: ZGC: Combine ZAllocator and ZObjectAllocator
Reviewed-by: aboldtch, stefank
-------------
PR: https://git.openjdk.org/jdk/pull/25693
More information about the hotspot-gc-dev
mailing list