Scalability of JVM processes is limited by GC rate.
For contemporary CPUs and GCs that provide the best throughput the allocation limit is ~11Gb/sec.
After reaching the allocation limit the JVM process doesn't scale.
Having 7.5Gb/sec in 1 thread the limit will be reached at 2-4 threads and adding more threads only decrease the total troughput.
Steps to reproduce that by running JSON parsing benchmarks on your JDK:
- Install latest version of
sbt
and/or ensure that it already installed properly: