Was ist der Unterschied zwischen Laufzeit und Kompilierzeit?
Antworten
Zu viele Anzeigen?Kompilierzeit:
Dinge, die zur Kompilierzeit durchgeführt werden, verursachen (fast) keine Kosten, wenn das resultierende Programm ausgeführt wird, können aber einen großen Aufwand verursachen, wenn Sie das Programm erstellen. Laufzeit:
Mehr oder weniger das genaue Gegenteil. Geringe Kosten beim Bau, höhere Kosten beim Ausführen des Programms.
Von der anderen Seite betrachtet; Wenn etwas zur Kompilierzeit erledigt wird, läuft es nur auf Ihrem Rechner, und wenn etwas zur Laufzeit erledigt wird, läuft es auf dem Rechner Ihrer Benutzer.
Meiner Meinung nach müssen Sie viele Links und Ressourcen lesen, um eine Vorstellung von dem Unterschied zwischen Laufzeit und Kompilierzeit zu bekommen, da es ein sehr komplexes Thema ist. Ich habe unten einige Bilder/Links aufgelistet, die ich empfehle.
Abgesehen von dem oben Gesagten möchte ich hinzufügen, dass manchmal ein Bild mehr als 1000 Worte wert ist:
- die Reihenfolge dieser beiden: zuerst Kompilierzeit und dann Ausführungszeit Ein kompiliertes Programm kann von einem Benutzer geöffnet und ausgeführt werden. Wenn eine Anwendung ausgeführt wird, wird sie als Laufzeit bezeichnet: Kompilierzeit und dann Laufzeit1 ;
CLR_diag Kompilierzeit und dann Laufzeit2
von Wiki
https://en.wikipedia.org/wiki/Run_time https://en.wikipedia.org/wiki/Run_time_(program_lifecycle_phase)
Lauzeit, Run-time oder Laufzeit können sich auf folgendes beziehen:
Computing
Ausführungszeit (Programmlebenszyklusphase), der Zeitraum, in dem ein Computerprogramm ausgeführt wird
Lauzeitbibliothek, eine Programmbibliothek, die Funktionen implementiert, die in eine Programmiersprache eingebaut sind
Lauzeitsystem, Software, die dazu dient, die Ausführung von Computerprogrammen zu unterstützen
Softwareausführung, der Prozess, Anweisungen während der Laufzeitphase schrittweise auszuführen
Liste der Compiler https://en.wikipedia.org/wiki/List_of_compilers
- suchen Sie auf Google und vergleichen Sie Laufzeitfehler vs. Kompilierfehler:
;
- Nach meiner Meinung eine sehr wichtige Sache zu wissen: 3.1 den Unterschied zwischen Erstellen vs. Kompilieren und den Erstellungslebenszyklus https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
3.2 den Unterschied zwischen diesen 3 Dingen: Kompilieren vs. Erstellen vs. Laufzeit
https://www.quora.com/What-is-the-difference-between-build-run-and-compile Fernando Padoan, Ein Entwickler, der nur ein bisschen neugierig auf Sprachdesign ist Beantwortet am 23. Februar Ich gehe im Vergleich zu anderen Antworten rückwärts:
Ausführen bedeutet, dass eine binäre ausführbare Datei (oder ein Skript für interpretierte Sprachen) erstellt wird, um als neuer Prozess auf dem Computer ausgeführt zu werden; Kompilieren ist der Prozess des Parsens eines Programms, das in irgendeiner Hochsprache (höher im Vergleich zum Maschinencode) geschrieben ist, Überprüfung der Syntax, Semantik, Verknüpfung von Bibliotheken, vielleicht Optimierung, dann Erstellung eines binären ausführbaren Programms als Ausgabe. Dieses Ausführen kann in Form von Maschinencode oder einer Art Byte-Code erfolgen - das heißt, Anweisungen, die auf eine Art virtuelle Maschine abzielen; Erstellen umfasst in der Regel die Überprüfung und Bereitstellung von Abhängigkeiten, die Inspektion des Codes, das Kompilieren des Codes in Binärdateien, das Ausführen automatisierter Tests und das Verpacken der resultierenden Binärdatei[en] und anderer Assets (Bilder, Konfigurationsdateien, Bibliotheken usw.) in ein bestimmtes Format einer bereitstellbaren Datei. Beachten Sie, dass die meisten Prozesse optional sind und einige von der Plattform abhängen, für die Sie erstellen. Als Beispiel wird die Verpackung einer Java-Anwendung für Tomcat eine .war-Datei erzeugen. Das Erstellen einer Win32-Ausführbaren Datei aus C++-Code könnte einfach das .exe-Programm ausgeben oder es auch in einem .msi-Installationsprogramm verpacken.
Ich habe immer daran gedacht, wie es sich auf den Programmierungs-Overhead und die Auswirkungen auf die Leistung auswirkt, wie bereits erwähnt. Ein einfaches Beispiel wäre, entweder den absoluten Speicherbedarf für mein Objekt im Code zu definieren oder nicht.
Ein definierter Boolean nimmt x Speicher ein, der dann im kompilierten Programm festgelegt ist und nicht geändert werden kann. Wenn das Programm ausgeführt wird, weiß es genau, wie viel Speicher für x zugewiesen werden soll.
Andererseits, wenn ich nur einen generischen Objekttyp definiere (z.B. eine undefinierte Platzhalter oder vielleicht ein Zeiger auf einen riesigen Blog), ist der tatsächliche Speicherbedarf für mein Objekt nicht bekannt, bis das Programm ausgeführt wird und ich ihm etwas zuweise. dann muss es also dynamisch ausgewertet und die Speicherzuweisung usw. wird dynamisch zur Laufzeit behandeln (mehr Laufzeit-Overhead).
Wie es dynamisch gehandhabt wird, würde dann von der Sprache, dem Compiler, dem Betriebssystem, Ihrem Code usw. abhängen.
In diesem Zusammenhang hängt es jedoch wirklich vom Kontext ab, in dem Sie Laufzeit vs. Kompilierzeit verwenden.
Hier ist eine sehr einfache Antwort:
Laufzeit und Kompilierzeit sind Programmierbegriffe, die sich auf verschiedene Phasen der Softwareentwicklung beziehen. Um ein Programm zu erstellen, schreibt ein Entwickler zuerst den Quellcode, der definiert, wie das Programm funktionieren wird. Kleine Programme enthalten möglicherweise nur einige hundert Zeilen Quellcode, während große Programme Hunderttausende von Zeilen Quellcode enthalten können. Der Quellcode muss in Maschinencode kompiliert werden, um ein ausführbares Programm zu werden. Dieser Kompilierungsprozess wird als Kompilierzeit bezeichnet. (denken Sie an einen Compiler als Übersetzer)
Ein kompiliertes Programm kann von einem Benutzer geöffnet und ausgeführt werden. Wenn eine Anwendung ausgeführt wird, spricht man von Laufzeit.
Die Begriffe "Laufzeit" und "Kompilierzeit" werden von Programmierern oft verwendet, um verschiedene Arten von Fehlern zu bezeichnen. Ein Kompilierzeitfehler ist ein Problem wie ein Syntaxfehler oder ein fehlender Dateiverweis, das verhindert, dass das Programm erfolgreich kompiliert wird. Der Compiler gibt Kompilierzeitfehler aus und zeigt in der Regel an, welche Zeile des Quellcodes das Problem verursacht.
Wenn der Quellcode eines Programms bereits in ein ausführbares Programm kompiliert wurde, kann es dennoch Fehler geben, die während des Programmablaufs auftreten. Beispiele hierfür sind Funktionen, die nicht funktionieren, unerwartetes Programmverhalten oder Programmabstürze. Diese Arten von Problemen werden Laufzeitfehler genannt, da sie zur Laufzeit auftreten.