Warum sind JIT-ed-Sprachen immer noch langsamer und weniger speichereffizient als natives C / C ++?

Dolmetscher erledigen viel zusätzliche Arbeit, so dass es verständlich ist, dass sie wesentlich langsamer als nativer Maschinencode enden. Sprachen wie C # oder Java verfügen jedoch über JIT-Compiler, die angeblich zur Kompilierung von systemeigenem Maschinencode auf der Plattform verwendet werden.

Und doch nachBenchmarks das scheint echt zu sein, sind die meisten fälle doch 2-4x langsamer als c / c ++? Natürlich meine ich im Vergleich zu C / C ++ gleichermaßen optimierten Code. Ich bin mir der Optimierungsvorteile der JIT-Kompilierung und ihrer Fähigkeit, Code zu erstellen, der schneller ist als schlecht optimiertes C + C ++, sehr wohl bewusst.

Und nach all dem Rauschen darüber, wie gut die Java-Speicherzuordnung ist, warum so einschrecklich Speichernutzung? 2x bis 50x, im Durchschnitt wird 30x mehr Speicher für diese bestimmte Benchmark-Suite verwendet, was nichts Besonderes ist ...

HINWEIS: Ich möchte keine WAR starten. Ich frage nach den technischen Details, die diese Leistungs- und Effizienzwerte definieren.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage