Parallel GC and array object layout: way off the base and laid out in reverse?
igor.veresov at oracle.com
Tue Sep 17 11:51:11 PDT 2013
On Sep 17, 2013, at 4:17 AM, Aleksey Shipilev <aleksey.shipilev at oracle.com> 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