Ich möchte nur erwähnen, dass drei der Gründe, die der Autor für die Bevorzugung der Timing-API im Browser angibt, nicht direkt auf eine Knotensituation zutreffen, und der vierte, die Ungenauigkeit der Javscript-Zeit, zitiert einen Artikel aus dem Jahr 2008. und ich würde dringend davor warnen, sich in Bezug auf die Leistungsspezifikationen von Javascript auf älteres Material zu verlassen, insbesondere angesichts der jüngsten Runde von Leistungsverbesserungen, die alle Engines zur Unterstützung von "HTML5" -Apps vorgenommen haben.
Als Antwort auf Ihre Frage sollten Sie sich jedoch ansehen process.hrtime()
UPDATE: Das present
Paket (erhältlich über npm install present
) enthält etwas Zucker, hrtime
wenn Sie es möchten.
Hinweis: Seit der Version 8.5.0 von Node können Sie performance.now () verwenden.
present
.Node v8.5.0 hat die Performance Timing API hinzugefügt , die
performance#now()
zconst { performance } = require('perf_hooks'); console.log('performance', performance.now());
quelle
Hier ist eine Verknüpfung
process.hrtime()
, die Millisekunden anstelle von Mikrosekunden zurückgibt:function clock(start) { if ( !start ) return process.hrtime(); var end = process.hrtime(start); return Math.round((end[0]*1000) + (end[1]/1000000)); }
Verwendung:
var start = clock(); // do some processing that takes time var duration = clock(start); console.log("Took "+duration+"ms");
Gibt etwas wie "Took 200ms" aus
quelle
Wie wäre es mit?
console.time('FooTimer'); // do the work console.timeEnd('FooTimer');
quelle
Hier ist eine Typescript-Version mit process.hrtime () , basierend auf der Antwort von NextLocal :
class Benchmark { private start = process.hrtime(); public elapsed(): number { const end = process.hrtime(this.start); return Math.round((end[0] * 1000) + (end[1] / 1000000)); } } export = Benchmark;
Verwendung:
import Benchmark = require("./benchmark"); const benchmark = new Benchmark(); console.log(benchmark.elapsed());
quelle
Um es zusammenzufassen und zu vermeiden
perf_hooks
const performance = { now: function(start) { if ( !start ) return process.hrtime(); var end = process.hrtime(start); return Math.round((end[0]*1000) + (end[1]/1000000)); } } console.log('performance', performance.now());
quelle
perf_hooks
?Diese Methode wurde in Version 8.5.0 von nodejs https://nodejs.org/api/perf_hooks.html#perf_hooks_performance_measurement_apis eingeführt
quelle