Remember that his has nothing to do with GC, which
takes place inside an executing java process. Here
we start a number of separate java processes, each
with its own GC
thread.
This is a matter of how long each Java process executes,
how much memory each process uses,
and how the OS handles that memory. Probably java processes
n-1, n-2,... have not finished execution before process n
starts. If there are several processes executing at the
same time and they each use quite a lot of memory, of
course the OS will have a hard time. It will probabaly
swap pages to disk which makes everything slower.
I would add a println() with a unique identifier at the
first and last line in the main method to see if there
are several processes executing at the same time.
Joakim