I was reading Martin's new GC article and I realized that it would be rather silly to run a parallel GC when you are running one JVM pre core.
That's what we tend to do in production to avoid JVM synchronized locks (SSL, Charsets, etc) but also because some of our apps are event sourced and we run one per port...
Seems like a stupid idea to run the Parallel GC if you're running one JVM per core. The parallelism is just going to run at a slower speed because other cores are being used. Further, if it DOES use another core you're going to get cache misses.
I've thought about just setting the processor affinity on startup to prevent this from happening.
I haven't read much about the SerialGC though and I'm not sure how much recent development it has had. Another option could be to use less parallel GC threads.