Der Begriff Laufzeit beschreibt in der Informatik im Wesentlichen die Zeitspanne, während der ein Programm von einem Rechner ausgeführt wird, und zwar sowohl im Bezug auf die Zeitdauer, die zur Bewältigung einer Aufgabe benötigt wird, als auch zur Beschreibung dass ein Programm zu einem bestimmten Zeitpunkt gerade ausgeführt wird.
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.
In der Informatik versucht man daher nicht konkret auszurechnen, wie viele Sekunden ein Programm auf einem bestimmten Computersystem ausgeführt wird. Stattdessen liefert die „O-Notation“, auch Landau-Notation genannt, immerhin eine ungefähre Abschätzung, wie viel Zeit zwischen Programmstart und -ende vergehen würde (vgl. hierzu Asymptotische Laufzeit). Diese Größe beachtet keine Einflussgrößen außer der Größe der Eingabedaten 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, also salopp gesagt „n hoch irgendwas“, oder noch besser logarithmischer Laufzeit O(log n) oder O(n·log n). Heute gebräuchliche Sortierverfahren erreichen solche logarithmischen Ausführungszeiten. 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 (runtime) bezeichnet die Phase der Ausführung eines Programms, also seine tägliche Verwendung durch den Benutzer, meist ohne Zugriffsmöglichkeiten für Entwickler. Insofern im Zuge der Ausführung bestimmte Eigenheiten - besonders Fehler - zu Rückmeldungen an die Entwickler führen können und damit Impulse zu Änderungen geben, können Erprobung und Verwendung eines Programms als Teil des Entwicklungsprozesses angesehen werden.
Weitere Phasen sind z.B. die Übersetzungszeit (compiletime) den Zeitpunkt der automatischen Übersetzung des Quelltextes oder die linktime den Zeitpunkt des Zusammenführens der Programmkomponenten zu einer ausführbaren Einheit. Das eigentliche Programmieren und Modellieren wird mitunter als precompiletime bezeichnet.