www.wikidata.de-de.nina.az
Der Begriff Laufzeit englisch runtime beschreibt in der Informatik einerseits die Zeitdauer die ein Programm ausgefuhrt durch einen Rechner zur Bewaltigung einer Aufgabe benotigt Andererseits wird mit Laufzeit auch allgemein die Programmlebensphase der Ausfuhrung bezeichnet die der Kompilierung Ubersetzungszeit folgt Inhaltsverzeichnis 1 Laufzeit als Dauer der Ausfuhrung 1 1 Asymptotische Laufzeit von Algorithmen 1 2 Konkrete Laufzeitbestimmung Profiling 2 Laufzeit als Ausfuhrungsphase eines Programms des Weiteren Vorgange ausserhalb des Laufzeitkontexts 3 Siehe auchLaufzeit als Dauer der Ausfuhrung BearbeitenDie Lange der Zeitspanne die zur Losung einer Aufgabe benotigt wird lasst sich haufig nur durch Ausprobieren bestimmen Jeder Befehl eines Programms in einer hoheren Programmiersprache wird vom Compiler in eine vorher nicht zwingend bekannte Anzahl von Maschinenbefehlen ubersetzt Die Ausfuhrung eines Befehls kann je nach Hardware weitere Verzogerungen ergeben wenn z B Daten zwischen Hauptspeicher und Cache ausgetauscht oder von der Festplatte in den Speicher eingelagert werden mussen Paging Weitere Abhangigkeiten ergeben sich von Betriebssystem CPU Taktrate Grosse des Hauptspeichers Ubertragungsrate des internen Bus Systems usw Auch mochte man etwa abschatzen wie sich das untersuchte Programm unter Variation der Grossen der Eingangsvariablen der Instanzen verhalt Asymptotische Laufzeit von Algorithmen Bearbeiten 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 Grosse der Instanz und verwendet die Landau Notation Einige Beispiele anhand eines Programms das n Zahlen sortiert O n displaystyle mathcal O n nbsp beschreibt ein lineares Wachstum Solch ein Programm macht pro eingegebener Zahl nur eine konstante Anzahl von Rechenschritten Werden beispielsweise doppelt so viele Zahlen eingegeben so verdoppelt sich auch die Ausfuhrungsdauer O n 2 displaystyle mathcal O n 2 nbsp bedeutet quadratisches Wachstum Das Sortierprogramm macht pro eingegebener Zahl eine konstante Anzahl von Durchlaufen durch die ganze Liste Bei doppelter Grosse der Eingabedaten kommt es hier also etwa zu einer Vervierfachung der Ausfuhrungsdauer O 2 n displaystyle mathcal O 2 n nbsp wurde schliesslich exponentielles Wachstum bedeuten Im Beispiel des Sortierprogramms wurde sich mit jeder weiteren Zahl die Laufzeit ungefahr verdoppeln was bereits bei verhaltnismassig kleinen Eingabegrossen zu extrem langen Laufzeiten fuhrt Solch einen Zeitverbrauch erreicht ein Sortierprogramm beispielsweise indem es alle moglichen Reihenfolgen der Zahlen daraufhin testet ob sie sortiert sind Verfahren mit exponentieller Laufzeit versucht man daher nach Moglichkeit zu vermeiden ob das uberhaupt geht ist eine der Fragen die man sich in der Theoretischen Informatik stellt vgl dazu Komplexitatstheorie und NP vollstandig Angestrebt werden Verfahren mit polynomieller O n k displaystyle mathcal O n k nbsp fur eine geeignete naturliche Zahl k displaystyle k nbsp oder noch besser logarithmischer Laufzeit O log n displaystyle mathcal O log n nbsp Heute gebrauchliche Sortierverfahren erreichen meist eine worst case Laufzeit von O n log n displaystyle mathcal O n log n nbsp oder O n 2 displaystyle mathcal O n 2 nbsp Man beachte dabei dass ein Programm im Grunde dreigeteilt ist Eingabe Verarbeitung Ausgabe und dass sich nur der mittlere Teil in dieser Hinsicht optimieren lasst Ein und Ausgabe haben in der Regel lineares Zeitverhalten es muss ja jeder einzelne Wert eingelesen ausgegeben werden Konkrete Laufzeitbestimmung Profiling Bearbeiten Die konkrete Laufzeitbestimmung von Programmen und insbesondere Programmteilen wird in der Softwareentwicklung als Profiling bezeichnet Eine Software die Profiling unterstutzt indem sie das zu untersuchende Programm mit Code zur Laufzeiterfassung erganzt instrumentiert und die Resultate der Laufzeitbestimmung aufbereitet wird als Profiler bezeichnet Profiler sind haufig als Teil einer integrierten Entwicklungsumgebung realisiert Laufzeit als Ausfuhrungsphase eines Programms des Weiteren Vorgange ausserhalb des Laufzeitkontexts BearbeitenLaufzeit runtime bezeichnet auch die Phase der Ausfuhrung 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 naherungsweise uber Dynamische Code Analyse vorhersehbar war Da nun beim Ausfuhren in diesen variierenden Kontexten bestimmte Programmeigenheiten insbesondere Fehler erstmals auftreten konnen erhalt der Entwickler haufig nur auf diesem Wege die Hinweise fur notwendige Anderungen am Programm Im weiteren Sinn kann somit auch die regulare Ausfuhrung eines Programms als Teil des Entwicklungsprozesses angesehen werden Weitere Phasen sind z B die Ubersetzungszeit engl compile time als Phase bis zum Zeitpunkt der automatischen Ubersetzung des Quelltextes und die link time fur den Zeitpunkt zu dem das Programm aus seinen binaren Programmkomponenten zu einer ausfuhrbaren Einheit zusammengefuhrt wird Manchmal wird die Phase des eigentlichen Programmierens und Modellierens als precompile time bezeichnet Siehe auch BearbeitenLaufzeitfehler Asymptotische Laufzeit Zeitkomplexitat Maximale Laufzeit Amortisierte Laufzeitanalyse Laufzeitbibliothek Laufzeitumgebung Abgerufen von https de wikipedia org w index php title Laufzeit Informatik amp oldid 219249244