Как получить microtime в Node.js?

Как я могу получить точную метку времени в Node.js?

Ps Моя версия Node.js равна 0.8.X, а расширение node-microtime не работает для меня (сбой при установке)

  • Как вы освобождаете завернутый объект C ++, если связанный объект Javascript - это мусор, собранный в V8?
  • Что заставляет эту функцию работать намного медленнее?
  • Почему Math.pow () (иногда) не равно ** в JavaScript?
  • Предел памяти кучи Node.js для одного объекта
  • Как я могу увидеть машинный код, сгенерированный v8?
  • Отладка «Максимальный размер стека вызовов»
  • Вставить механизм JavaScript в приложение iOS
  • Почему допустимо медленнее, чем var в цикле for в nodejs?
  • 7 Solutions collect form web for “Как получить microtime в Node.js?”

    new Date().getTime() ? Это дает вам временную метку в миллисекундах, что является наиболее точным, что даст вам JS.

    Обновление: Как указано vaughan, process.hrtime() доступен в Node.js – его разрешение составляет наносекунды, и поэтому оно намного выше, также это не значит, что оно должно быть более точным.

    PS: Чтобы быть яснее, process.hrtime() возвращает вам Array кортежей, содержащий текущее реальное время с высоким разрешением в секундах, наносекундах]

    В Node.js «время высокого разрешения» доступно через process.hrtime . Он возвращает массив с первым элементом в секундах, а второй – оставшиеся наносекунды.

    Чтобы получить текущее время в микросекундах, выполните следующие действия:

     var hrTime = process.hrtime() console.log(hrTime[0] * 1000000 + hrTime[1] / 1000) 

    (Спасибо itaifrenkel за указание ошибки в конверсии выше.)

    В современных браузерах время с точностью до микросекунды доступно как performance.now . См. https://developer.mozilla.org/en-US/docs/Web/API/Performance/now для документации.

    Я сделал реализацию этой функции для Node.js, основанной на process.hrtime , которую относительно сложно использовать, если вы только хотите вычислить разницу во времени между двумя точками в программе. См. http://npmjs.org/package/performance-now . В спецификаторе эта функция сообщает время в миллисекундах, но это плавающее значение с точностью до миллисекунды.

    В версии 2.0 этого модуля указанные миллисекунды относятся к Date.now() - (process.uptime() * 1000) процесса узла ( Date.now() - (process.uptime() * 1000) ). Вам нужно добавить это к результату, если вам нужна отметка времени, похожая на Date.now() . Также обратите внимание, что вы должны перепроверить Date.now() - (process.uptime() * 1000) . Оба Date.now и process.uptime очень ненадежны для точных измерений.

    Чтобы получить текущее время в микросекундах, вы можете использовать что-то вроде этого.

     var loadTimeInMS = Date.now() var performanceNow = require("performance-now") console.log((loadTimeInMS + performanceNow()) * 1000) 

    См. Также: Предоставляет ли JavaScript таймер с высоким разрешением?

     now('milli'); // 120335360.999686 now('micro') ; // 120335360966.583 now('nano') ; // 120335360904333 

    Известно, что now есть:

      const now=(unit)=>{ const hrTime=process.hrtime(); switch (unit) { case 'milli':return hrTime[0] * 1000 + hrTime[1] / 1000000; case 'micro':return hrTime[0] * 1000000 + hrTime[1] / 1000; case 'nano':return hrTime[0] * 1000000000 + hrTime[1] ; break; default:return hrTime[0] * 1000000000 + hrTime[1] ; } } 

    Node.js нанотимер

    Я написал библиотеку / объект-оболочку для node.js поверх вызова функции process.hrtime . Он имеет полезные функции, такие как синхронизирующие синхронные и асинхронные задачи, заданные в секундах, миллисекундах, микро и даже nano и следуя синтаксису встроенного таймера javascript, чтобы быть знакомым.

    Объекты таймера также дискретны, поэтому вы можете иметь столько, сколько хотите, каждый со своим запущенным процессом setTimeout или setInterval .

    Это называется нанотимер . Проверьте это!

    Также есть https://github.com/wadey/node-microtime :

     > var microtime = require('microtime') > microtime.now() 1297448895297028 

    Чтобы работать с большей точностью, чем Date.now() , но с миллисекундами в точности float:

     function getTimeMSFloat() { var hrtime = process.hrtime(); return ( hrtime[0] * 1000000 + hrtime[1] / 1000 ) / 1000; } 

    Есть пакеты npm, которые привязываются к функции gettimeofday () системы, которая возвращает микросекундную временную метку точности в Linux. Найдите npm gettimeofday . Вызов C выполняется быстрее, чем process.hrtime()

    Interesting Posts
    JavaScript делает сайт умным, красочным и простым использованием.