~Based on my limited knowledge of both of these technologies, they both employ compiling to byte code that is run in an interpreter loop. Both manage reference counted objects for OO languages. Yet Python appears to be much less efficient in synthetic benchmarks likes the benchmark game and in the real world applications I have built and managed over the years. Java also doesn't seem to employ a coarse grained GIL and seems to have a much better story when it comes to multiprocessing.~

~So my question is, why is this the case? Why does CPython code run so much slower than other VM languages? Why does CPython seem to be held back in an ever increasingly multi-core world? Is there a future in which CPython will not have these issues?~