Laufzeit (Informatik) - de.LinkFang.org

Laufzeit (Informatik)

Der Begriff Laufzeit (englisch runtime) beschreibt in der Informatik einerseits die Zeitdauer, die ein Programm, ausgeführt durch einen Rechner, zur Bewältigung einer Aufgabe benötigt. Andererseits wird mit Laufzeit auch allgemein die Programmlebensphase der Ausführung, die nach der Kompilierung folgt, bezeichnet. Zu dieser zweiten Bedeutung bildet die Übersetzungszeit das Gegenstück.

Laufzeit als Dauer der Ausführung


Die Länge der Zeitspanne, die zur Lösung einer Aufgabe benötigt wird, lässt sich häufig nur durch Ausprobieren bestimmen. Jeder Befehl eines Programms in einer höheren Programmiersprache wird vom Compiler in eine vorher nicht zwingend bekannte Anzahl von Maschinenbefehlen übersetzt. Die Ausführung eines Befehls kann, je nach Hardware, weitere Verzögerungen ergeben – wenn z. B. Daten zwischen Hauptspeicher und Cache ausgetauscht oder von der Festplatte in den Speicher eingelagert werden müssen (Paging). Weitere Abhängigkeiten ergeben sich von Betriebssystem, CPU-Taktrate, Größe des Hauptspeichers, Übertragungsrate des internen Bus-Systems usw. Auch möchte man etwa abschätzen, wie sich das untersuchte Programm unter Variation der Größen der Eingangsvariablen, der Instanzen, verhält.

In der Informatik gibt man daher Laufzeiten von Algorithmen nicht in Zeiteinheiten an. Stattdessen sucht man eine obere Schranke an die Anzahl der einfachen Operationen, auch Elementarschritte, in der Größe der Instanz und verwendet die Landau-Notation.

Einige Beispiele anhand eines Programms, das n Zahlen sortiert:

Verfahren mit exponentieller Laufzeit versucht man daher nach Möglichkeit zu vermeiden – ob das überhaupt geht, ist eine der Fragen, die man sich in der Theoretischen Informatik stellt (vgl. dazu Komplexitätstheorie und NP-vollständig). Angestrebt werden Verfahren mit polynomieller ({\mathcal {O}}(n^{k}) für eine geeignete natürliche Zahl k) oder noch besser logarithmischer Laufzeit {\mathcal {O}}(\log n). Heute gebräuchliche Sortierverfahren erreichen meist eine worst case Laufzeit von {\mathcal {O}}(n\log n) oder {\mathcal {O}}(n^{2}). Man beachte dabei, dass ein Programm im Grunde dreigeteilt ist – Eingabe, Verarbeitung, Ausgabe – und dass sich nur der mittlere Teil in dieser Hinsicht optimieren lässt (Ein- und Ausgabe haben in der Regel lineares Zeitverhalten – es muss ja jeder einzelne Wert eingelesen/ausgegeben werden).

Laufzeit als Lebensphase eines Programms


Laufzeit (runtime) bezeichnet auch die Phase der Ausführung eines Programms in einem spezifischen Laufzeitkontext: variierende Hardwareeigenschaften, Eingabeparameter und Benutzer-Interaktion. Das Programm befindet sich zur Laufzeit typischerweise in einer Verwendung in einem Kontext, der in dieser exakten Konstellation durch den Entwickler nicht (oder nur näherungsweise über Dynamische Code-Analyse) vorhersehbar war.

Da nun beim Ausführen in diesen variierenden Kontexten bestimmte Programmeigenheiten – insbesondere Fehler – erstmals auftreten können, erhält der Entwickler häufig nur auf diesem Wege die Hinweise für notwendige Änderungen am Programm. Im weiteren Sinn kann somit auch die reguläre Ausführung eines Programms als Teil des Entwicklungsprozesses angesehen werden.

Weitere Phasen sind z. B. die Übersetzungszeit (engl. compile time) als Phase bis zum Zeitpunkt der automatischen Übersetzung des Quelltextes und die link time für den Zeitpunkt, zu dem das Programm aus seinen binären Programmkomponenten zu einer ausführbaren Einheit zusammengeführt wird. Manchmal wird die Phase des eigentlichen Programmierens und Modellierens als precompile time bezeichnet.

Siehe auch





Kategorien: Programmierung | Zeitraum


Quelle: Wikipedia - https://de.wikipedia.org/wiki/Laufzeit (Informatik) (Autoren [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Veränderungen: Alle Bilder und die meisten Designelemente, die mit ihnen in Verbindung stehen, wurden entfernt. Icons wurden teilweise durch FontAwesome-Icons ersetzt. Einige Vorlagen wurden entfernt (wie „Lesenswerter Artikel“, „Exzellenter Artikel“) oder umgeschrieben. CSS-Klassen wurden zum Großteil entfernt oder vereinheitlicht.
Wikipedia spezifische Links, die nicht zu Artikeln oder Kategorien führen (wie „Redlink“, „Bearbeiten-Links“, „Portal-Links“) wurden entfernt. Alle externen Links haben ein zusätzliches FontAwesome Icon erhalten. Neben weiteren kleinen Designanpassungen wurden Media-Container, Karten, Navigationsboxen, gesprochene Versionen & Geo-Mikroformate entfernt.


Stand der Informationen: 20.10.2019 03:15:09 CEST - Wichtiger Hinweis Da die gegebenen Inhalte zum angegebenen Zeitpunkt maschinell von Wikipedia übernommen wurden, war und ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.org nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein oder Fehler in der Darstellung vorliegen, bitten wir Sie darum uns per zu kontaktieren: E-Mail.
Beachten Sie auch : Impressum & Datenschutzerklärung.