Der Begriff Laufzeit beschreibt in der Informatik im Wesentlichen die Zeitspanne, während der ein Programm von einem Rechner ausgeführt wird. Die Länge dieser Zeitspanne lässt sich aber häufig nur durch Ausprobieren bestimmen. Jeder Befehl eines Programms in einer Hochsprache wie z. B. Java wird vom Compiler in eine unbekannte 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 (das ist auf der ersten Ebene ein in die CPU eingebauter, sehr kleiner Zwischenspeicher für sehr oft benötigte Daten; auf tieferen Ebenen ist es ein spezieller Speicher auf dem Mainboard ("second-level-cache")) ausgetauscht werden, oder wenn die Daten erst von der Festplatte wieder 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 (leitet Daten zwischen den diversen Bestandteilen eines PCs hin und her), und so weiter und so fort.
In der Informatik versucht man daher gar nicht mehr, konkret auszurechnen, dass ein Programm auf einem ganz bestimmten PC 0,128 Sekunden lang ausgeführt wird. Stattdessen liefert die "O-Notation", auch Landau-Notation genannt, immerhin eine ungefähre Angabe, wieviel Zeit zwischen Programmstart und -ende vergehen würde (vgl. hierzu Asymptotische Laufzeit). Diese Größe beachtet keine Einflussgrößen außer der Eingabegröße mehr, und beschreibt ein ungefähres Wachstumsverhalten der Laufzeit für größere Eingaben.
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, "NP-vollständige" Probleme (NP-vollständig). Angestrebt werden Verfahren mit polynomieller Laufzeit, also salopp gesagt "n hoch irgendwas". 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.
Es gibt hier zwei Arten von "Laufzeitfehlern":
Zur ersten Kategorie gehören beispielsweise folgende Fehler:
Falsch berechnete Zwischenergebnisse gehören eher in den Bereich der Fehler, die durch einen falsch programmierten Ablauf entstehen.
Zur zweiten Kategorie gehören unerwartete Änderungen an der verfügbaren Hardware, die das Programm weder testen noch selbst beheben oder umgehen kann:
Runtime | Kørsel (datalogi) | Runtime | Runtime | סיבוכיות זמן | Run-time | ランタイムライブラリ | Biblioteka uruchomieniowa | Tempo de execução
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Laufzeit (Informatik)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world