When running performance tests with large heaps (24G or so) I noticed that GC worker 0 was taking longer in the RS updating phase than the rest. Here's an example:
[Update RS (ms): 4.6 2.3 2.4 2.6 2.3 2.4 2.5 2.7 2.2 2.6 2.6 2.4 2.3
Avg: 2.6, Min: 2.2, Max: 4.6]
When the pause times were short, this resulted in long termination times for all but worker 0:
[Termination (ms): 0.0 2.0 1.9 1.9 2.0 1.9 1.9 1.9 1.9 1.9 2.0 1.9 1.9
Avg: 1.8, Min: 0.0, Max: 2.0]
which added unnecessary time to the collection pause.