Dauern messen
Messen Sie, wie lange Code läuft.
Dauern messen ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Ausführungszeit Ihres Codes messen
Manchmal möchten Sie wissen, wie lange eine Aufgabe gedauert hat: eine Datei laden, eine Schleife ausführen oder ein Level erstellen. Durch das Messen von Zeitspannen finden Sie langsame Stellen und können sie verbessern.
Lua bietet Ihnen dafür zwei Werkzeuge: os.time für grobe Zeitmessungen und os.clock für präzise Messungen.
Das Stoppuhr-Muster
Die Grundidee ist einfach: Erfassen Sie die Zeit vor der Arbeit, führen Sie die Arbeit aus, erfassen Sie die Zeit danach und subtrahieren Sie die beiden Werte.
Die Differenz ist die verstrichene Zeit. Dieses Start-Stopp-Muster bildet das Herz jedes Timers.
local start = os.time()
-- work happens here
local stop = os.time()
print("Elapsed:", stop - start)os.time ist ungenau
os.time zählt ganze Sekunden und kann daher nichts erkennen, was schneller als eine Sekunde ist. Zwei schnell aufeinanderfolgende Aufrufe ergeben häufig eine Differenz von null.
Für kurze Aufgaben benötigen Sie eine genauere Uhr. Hier kommt os.clock ins Spiel.
local a = os.time()
local b = os.time()
print(b - a)os.clock kennenlernen
os.clock() gibt eine Anzahl von Sekunden zurück, allerdings als Dezimalzahl mit Nachkommastellen. Die Funktion misst die von Ihrem Programm verbrauchte CPU-Zeit mit hoher Auflösung.
Dadurch eignet sie sich ideal, um schnelle Vorgänge bis auf Bruchteile einer Sekunde genau zu messen.
print(os.clock())Eine Schleife messen
Setzen Sie eine Schleife zwischen zwei Messungen mit os.clock, um zu sehen, wie lange sie ausgeführt wurde. Die Differenz ist die verstrichene Zeit in Sekunden.
Größere Schleifen benötigen mehr Zeit. So können Sie verschiedene Ansätze schnell vergleichen.
local t1 = os.clock()
local sum = 0
for i = 1, 1000000 do sum = sum + i end
local t2 = os.clock()
print("Took", t2 - t1, "seconds")Das Ergebnis formatieren
Eine lange Dezimalzahl ist schwer zu lesen. Verwenden Sie daher string.format, um eine übersichtliche Anzahl an Nachkommastellen anzuzeigen.
%.3f gibt hier drei Nachkommastellen aus und ermöglicht eine Genauigkeit im Millisekundenbereich.
local t1 = os.clock()
for i = 1, 500000 do end
local elapsed = os.clock() - t1
print(string.format("%.3f seconds", elapsed))os.time oder os.clock
Wählen Sie das passende Werkzeug. Verwenden Sie os.time für Zeitspannen aus der realen Welt, etwa „wie viele Sekunden vergangen sind, seit sich der Benutzer angemeldet hat“.
Verwenden Sie os.clock, um die Leistung von Code zu messen, da die Funktion präzise ist und die CPU-Zeit statt der verstrichenen Echtzeit erfasst.
Eine wiederverwendbare Timer-Funktion
Sie können das Muster in eine Funktion verpacken. Sie führt eine vorgegebene Funktion aus, misst deren Laufzeit und gibt das Ergebnis aus.
Dadurch bleibt die Logik für Zeitmessungen an einer Stelle und lässt sich leicht wiederverwenden.
local function timeIt(fn)
local s = os.clock()
fn()
print(string.format("%.4f s", os.clock() - s))
end
timeIt(function() for i=1,100000 do end end)Zeitunterschiede über mehrere Stunden
Bei langen Zeitspannen aus der realen Welt ist os.difftime mit zwei os.time-Werten am übersichtlichsten. Die Funktion gibt die Zeitspanne in Sekunden zurück.
Teilen Sie durch 60 für Minuten oder durch 3600 für Stunden, um die Zeitspanne anschaulich auszugeben.
local started = os.time({year=2025, month=1, day=1, hour=9})
local ended = os.time({year=2025, month=1, day=1, hour=17})
local hours = os.difftime(ended, started) / 3600
print(hours, "hours")Minuten und Sekunden anzeigen
Um eine Zeitspanne als Minuten und Sekunden darzustellen, verwenden Sie die Ganzzahldivision und den Modulo-Operator.
// liefert ganze Minuten und % die verbleibenden Sekunden.
local total = 145
local mins = total // 60
local secs = total % 60
print(string.format("%d:%02d", mins, secs))Eine einfache Countdown-Berechnung
Kombinieren Sie die Konzepte, um die verbleibende Zeit auszugeben. Ziehen Sie die aktuelle Zeit vom Zielzeitpunkt ab und formatieren Sie die Sekunden anschließend als Minuten und Sekunden.
So erhalten Sie eine übersichtliche Countdown-Anzeige.
local target = os.time() + 90
local left = os.difftime(target, os.time())
print(string.format("%d:%02d left", left // 60, left % 60))Schnelltest
Wählen Sie das beste Werkzeug für präzise Zeitmessungen.
Zusammenfassung
Um eine Zeitspanne zu messen, lesen Sie die Uhr vor und nach einem Vorgang ab und subtrahieren Sie die beiden Werte. Verwenden Sie os.time für Zeitspannen aus der realen Welt in ganzen Sekunden und os.clock für präzise Zeitmessungen von Code mit Nachkommastellen.
Formatieren Sie Ergebnisse mit string.format und wandeln Sie rohe Sekunden mithilfe von // und % in Minuten und Sekunden um. Mit diesen Werkzeugen können Sie alles messen, von einer Schleife bis zu einem Arbeitstag.
Häufig gestellte Fragen
Ist die Lektion „Dauern messen“ kostenlos?
Ja — der vollständige Text von „Dauern messen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dauern messen“?
Messen Sie, wie lange Code läuft. Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Lua Academy zu starten?
Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Dauern messen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?
Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- os.time und os.date
- Daten formatieren
- Zeitberechnungen
- Dauern messen