wzp
2021-05-13 7d694a9113118daec5be7ac224dab46a3b20f106
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';
 
var NS_PER_SEC = 1e9;
var MS_PER_NS = 1e6;
 
/**
* Get duration in milliseconds from two process.hrtime()
 
* @function hrTimeDurationInMs
* @param {Array} startTime - [seconds, nanoseconds]
* @param {Array} endTime - [seconds, nanoseconds]
* @returns {Number|null} durationInMs
*/
function hrTimeDurationInMs(startTime, endTime) {
    if (!Array.isArray(startTime) || !Array.isArray(endTime)) {
        return null;
    }
 
    var secondDiff = endTime[0] - startTime[0];
    var nanoSecondDiff = endTime[1] - startTime[1];
    var diffInNanoSecond = secondDiff * NS_PER_SEC + nanoSecondDiff;
 
    return Math.round(diffInNanoSecond / MS_PER_NS);
}
 
module.exports = hrTimeDurationInMs;