JavaScript/Tutorials/Ausführungszeiten messen
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.
Inhaltsverzeichnis
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.
var start = performance.now();
// CODE, der gemessen werden soll
var time = performance.now();
console.log('Dauer: ' + (time - start) + ' ms.');
Weblinks
- W3C: High Resolution Time
- MDN: Performance.now()
- developers.google: When milliseconds are not enough: performance.now von Paul Irish
- John Resig: Accuracy of JavaScript Time