2012-04-05 16 views
-2

Das könnte blöde Frage sein, aber ich habe immer noch keinen akzeptablen Grund.
Viele Leute denken natürlich, dass High-Level-Sprache langsamer als C sein muss, weil es High-Level ist. Wenn beide Programme die gleiche Eingabe, Ausgabe und Algorithmus haben, denke ich, dass man langsamer arbeitet. Warum unnötige Arbeit nicht beseitigt werden kann?Warum High-Level-Programmiersprache ist nicht so schnell wie C?

+0

Annahmen, Annahmen ... Haben Sie das gemessen? – Oded

+0

Keine einfache Diskussion. Relevant: [Reader Q & A: Wann werden bessere JITs verwalteten Code speichern?] (Http://herbsutter.com/2012/04/02/reader-qa-when-will-better-jits-save-managed-code/) – sehe

+1

Nun ... * unnötige Arbeit * ist wahrscheinlich Müllsammlung, Speichersicherheit und mehr nicht-triviale Dinge wie diese. Entfernen Sie sie aus einer höheren Sprache und Sie haben wahrscheinlich etwas so schnell wie C. –

Antwort

1

Das liegt hauptsächlich daran, dass Hochsprachen interpretiert und in einer virtuellen Maschine ausgeführt werden. Wenn Sie einen richtigen JIT-Compiler ausführen und die Sprachen-Intermediate-Darstellung nahe genug an den Maschinencode ist, können Sie überraschende Ergebnisse erhalten, wie mit LuaJIT zu sehen ist.