Does this mean that the general idea that the JVM is slower than C is wrong or are there flaws in the original C implementations?
Little
The JVM has been around for a long time and has made significant progress in efficiency. Garbage collection, jittering, caching and other areas are more advanced than in "reference" implementations, such as PHP.
Anyone looking under the hood of PHP will understand why performance gains are easy to achieve.
I personally doubt that the JVM can outperform CPython, but ... but I can be wrong ... I, that's not how the JVM GC works faster, but IronPython does too. Improving performance may not be warranted in the C call stack, for example, in free Python. Jython Website Status
Jython is about as fast as CPython - sometimes faster, sometimes slower. Since> most JVMs — certainly the fastest — work for a long time, hot code runs faster faster.
What I can describe as a fact, since the JVM will reach C performance levels when generating caches, etc., basically deny higher-level aspects for VM implementation code (most of which is written in C anyway).
In many interpreted languages, such as PHP and Python, there are only bridges for equivalent C calls and immersion in machine code. In the JVM, jitter performs a similar function, reducing bytecode to machine code equivalents. After all, intermediate representations, such as high-level syntax and bytecode, are usually reduced to C-speed or faster CPU operations ... so this is just the same, only more intermediate steps that only affect the delay until full efficiency when downloading new code. There comes a point in RAM where you say: "What's the difference?" and the answer is just the process that gets it there, and the final presentation, which determines the speed of the stack winding, garbage collection algorithms, the use of registers, and the logical representation, such as arithmetic.