488 Stimmen

Laufzeit vs. Kompilierzeit

Was ist der Unterschied zwischen Laufzeit und Kompilierzeit?

12voto

Spence Punkte 27536

Grundsätzlich kann Ihr Compiler, wenn er erkennen kann, was Sie meinen oder was ein Wert ist "zur Compile-Zeit", dies in den Laufzeitcode einbauen. Natürlich wird der Laufzeitcode langsamer ausgeführt, wenn er jedes Mal eine Berechnung durchführen muss. Daher ist es viel besser, wenn Sie etwas zur Compile-Zeit bestimmen können.

Zum Beispiel.

Konstantenfaltung:

Wenn ich dies schreibe:

int i = 2;
i += MY_CONSTANT;

Kann der Compiler diese Berechnung zur Compile-Zeit ausführen, weil er weiß, was 2 ist und was MY_CONSTANT ist. Dadurch spart er sich die Ausführung einer Berechnung bei jeder Ausführung.

0 Stimmen

Und es ist einfacher, Code zur Kompilierzeit zu pflegen als Code, der an die Laufzeit gebunden ist. Zur Kompilierzeit können Sie den Compiler verwenden, um einige Dinge zu überprüfen. Die gleichen Dinge zur Laufzeit zu überprüfen dauert länger, weil Tests involviert sind.

11voto

dicroce Punkte 43066

Hmm, okay, Laufzeit wird verwendet, um etwas zu beschreiben, das geschieht, wenn ein Programm ausgeführt wird.

Kompilierzeit wird verwendet, um etwas zu beschreiben, das geschieht, wenn ein Programm erstellt wird (normalerweise durch einen Compiler).

11voto

Jared K Punkte 231

Als Ergänzung zu den anderen Antworten hier ist, wie ich es einem Laien erklären würde:

Ihr Quellcode ist wie der Bauplan eines Schiffes. Er legt fest, wie das Schiff gemacht werden soll.

Wenn Sie Ihren Bauplan an die Werft übergeben und sie einen Fehler beim Bau des Schiffes feststellen, werden sie den Bau sofort stoppen und es Ihnen melden, bevor das Schiff je den Trockendock verlassen oder Wasser berührt hat. Das ist ein Kompilierungsfehler. Das Schiff hat noch nicht einmal tatsächlich geschwommen oder seine Motoren benutzt. Der Fehler wurde entdeckt, weil er verhindert hat, dass das Schiff überhaupt gebaut wird.

Wenn Ihr Code kompiliert, ist das wie das fertige Schiff. Gebaut und bereit zum Auslaufen. Wenn Sie Ihren Code ausführen, ist das wie das Schiff auf eine Reise schicken. Die Passagiere sind an Bord, die Motoren laufen und der Rumpf befindet sich im Wasser, also ist das Laufzeit. Wenn Ihr Schiff einen fatalen Fehler hat, der es auf seiner Jungfernfahrt versenkt (oder vielleicht auf einer späteren Fahrt für extra Kopfschmerzen), hat es einen Laufzeitfehler erlitten.

11voto

BCS Punkte 71108

Compile Time:

Dinge, die zur Compile-Zeit erledigt werden, verursachen (fast) keine Kosten, wenn das resultierende Programm ausgeführt wird, können aber hohe Kosten verursachen, wenn Sie das Programm erstellen.

Run-Time:

Mehr oder weniger das genaue Gegenteil. Wenig Kosten beim Erstellen, mehr Kosten beim Ausführen des Programms.

Von der anderen Seite aus betrachtet; Wenn etwas zur Compile-Zeit erledigt wird, läuft es nur auf Ihrem Rechner, und wenn etwas zur Laufzeit erledigt wird, läuft es auf dem Rechner Ihrer Benutzer.

Relevanz

Ein Beispiel, wo dies wichtig ist, wäre ein Einheitentyp. Eine zur Compile-Zeit erstellte Version (wie Boost.Units oder meine Version in D) erweist sich als genauso schnell wie die Lösung des Problems mit nativem Gleitkommencode, während eine zur Laufzeit erstellte Version Informationen über die Einheiten, in denen ein Wert enthalten ist, herumschleppen und Checks bei jeder Operation durchführen muss. Andererseits erfordern die zur Compile-Zeit erstellten Versionen, dass die Einheiten der Werte zur Compile-Zeit bekannt sind und nicht mit dem Fall umgehen können, in dem sie aus einer Laufzeit-Eingabe stammen.

9voto

Pankaj Prakash Punkte 2096

Aufbauend auf der vorherigen ähnlichen Antwort zur Frage Was ist der Unterschied zwischen Laufzeitfehler und Compilerfehler?

Kompilierungs-/Kompilierzeit/Syntax/Semantikfehler: Kompilierungs- oder Kompilierfehler treten aufgrund von Tippfehlern auf. Wenn wir die richtige Syntax und Semantik einer Programmiersprache nicht befolgen, werden Kompilierungsfehler vom Compiler ausgelöst. Sie lassen Ihr Programm nicht eine einzige Zeile ausführen, bis Sie alle Syntaxfehler entfernen oder bis Sie die Kompilierungsfehler debuggen.

Beispiel: Fehlen eines Semikolons in C oder falsches Schreiben von int als Int.

Laufzeitfehler: Laufzeitfehler treten auf, wenn das Programm im Laufzustand ist. Diese Art von Fehlern führt dazu, dass Ihr Programm unerwartet reagiert oder sogar abstürzt. Sie werden oft als Ausnahmen bezeichnet.
Beispiel: Nehmen wir an, Sie lesen eine Datei, die nicht existiert, dies wird zu einem Laufzeitfehler führen.

Erfahren Sie hier mehr über alle Programmierfehler

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X