Parallel GC and array object layout: way off the base and laid out in reverse?

Igor Veresov igor.veresov at
Tue Sep 17 18:51:11 UTC 2013

On Sep 17, 2013, at 4:17 AM, Aleksey Shipilev <aleksey.shipilev at> wrote:

> It reliably fixes the layout problems on my test with
> -XX:ParallelGCThreads=1. With more than one GC thread I still
> occasionally get the reverse order. My hypothesis is that while original
> GC worker can process the array in forward order, *stealing* that work
> by some other worker will do the effective reverse.

Yea, you're going to see different permutations of array chunks that can be processed in parallel, in addition to that the objects the array is referring to will land in different PLABs that can be apart and have some internal fragmentation with respect to array elements. That's going to be true for all the collectors.


More information about the hotspot-gc-dev mailing list