Я только что узнал на днях, что Node.js имеет функцию таймера высокого разрешения под названиемNode.js process.hrtime() бенчмаркинг ошибка
Этот таймер якобы имеет разрешение наносекунд, что является фантастическим потому что теперь я могу использовать материал намного лучше, чем я мог с модулем Date.
В любом случае, я использую этот новый таймер, чтобы попытаться создать объект Timer, который может выполнять различные задачи, переданные ему. К сожалению, я получаю некоторые странные отрицательные результаты, которые заставляют меня подвергать сомнению точность и надежность этого предполагаемого таймера с высоким разрешением.
Позвольте мне показать вам мой код:
hrTimer.js
//IMPORTS
var async = require('async');
HrTimer = {
time: function(task) {
var t1 = t2 = '';
async.series([
function(callback){
t1 = process.hrtime();
callback();
},
task,
function(callback){
t2 = process.hrtime();
callback();
}
]);
var t1 = t1[0].toString() + '.' + t1[1].toString();
var t2 = t2[0].toString() + '.' + t2[1].toString();
var dif = parseFloat(t2)-parseFloat(t1);
if(dif < 0){
debugger;
console.log(t1);
console.log(t2);
}
return dif;
}
};
module.exports = HrTimer;
Так что иногда войдет в блок кода, где диф < 0. Это не должно произойти при условии модуль асинхронной работает правильно , и таймер работает правильно. Любая помощь?
я вижу! Это упрощает и исправляет мой код! Спасибо. – krb686
@ krb686 Нет проблем! – loganfsmyth