JavaScript/Tutorials/Ausführungszeiten messen

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Wenn Sie Lade- und Laufzeiten von Skripten messen und vergleichen wollen, reicht das Date-Objekt von JavaScript nicht aus, da die Systemzeit des Anwenderrechners nicht hinreichend genau ist. Theoretisch misst sie in Millisekunden – praktisch verzögert sich die Ausführung von Skripten durch die single-threaded Natur von JavaScript. Darüber hinaus wird die Systemzeit alle 15-20 Minuten synchronisiert, sodass es hier zu Sprüngen von mehreren Millisekunden kommen kann.

früher: Messen mit dem Date-Objekt
var start = new Date();
    // CODE, der gemessen werden soll
var time = new Date() - start;
// time is the number of milliseconds it takes to execute the script

High Resolution Time

Der DOMHighResTimeStamp kann zum Speichern von Zeitwerten verwendet werden. Im Unterschied zum Date-Objekt kann es dabei bis zu 5/1000 einer Millisekunde (5 µs (Microsekunden)) unterscheiden.

performance.now()

Die Methode window.performance.now ermöglicht ähnlich wie Date.now() das Messen und Vergleichen von Zeitpunkten. Dabei bietet es aber timestamps mit einer kleineren Auflösung als die im Date-Objekt verwendeten Millisekunden, um die Seitenperformance messen zu können.

Grundlage ist nicht der 01.01.1970, sondern die in performance.timing.navigationStart gespeicherte Zeit, in der die fragliche Seite geladen wurde.

heute: Messen mit performance.now()
var start = performance.now();
    // CODE, der gemessen werden soll
var time = performance.now();
console.log('Dauer: ' + (time - start) + ' ms.');

Weblinks