Description
The most high resolution timing in NodeJs
This module provide cross platform function rdtsc().
rdtsc() return counts the number of cycles since computer start
If you run in on Windows it will call C++ function __rdtsc() that call processor command RDTSC (Read Time Stamp Counter)
(rdtsc() - rdtsc()) is always < 0
Notice: you should not use parallel threads since you calc performance
Install
npm i rdtsc -S
Features
RDTSC
var { rdtsc } = require('rdtsc')
console.log(rdtsc())
console.log(rdtsc() - rdtsc())
Calc Performance
Accuracy: +/- 4 cycles
Syntax
Examples
const { calcPerformance } = require('rdtsc')
calcPerformance(1000, () => {}, () => {}, () => {})
calcPerformance(1000, () => {}, () => {})
calcPerformance(1000, () => {})
var { calcPerformance } = require('rdtsc')
var result = calcPerformance(
1000,
() => {
},
() => {
Object.keys(Math)
}
)
console.log('"Object.keys(Math)" min cycles =', result.absoluteDiff[0])
Thread Priority
Implemented only for Windows platform
Examples
const { runInRealtimePriority, getThreadPriority, getProcessPriority } = require('rdtsc')
runInRealtimePriority(() => {
console.log('getThreadPriority = ', getThreadPriority())
console.log('getProcessPriority = ', getProcessPriority())
})
const { setThreadPriority, getThreadPriority, isWin, THREAD_PRIORITY_REALTIME } = require('rdtsc')
if (isWin) {
console.log(getThreadPriority())
} else {
console.log(getThreadPriority())
}
var previousPriority = setThreadPriority(THREAD_PRIORITY_REALTIME)
try {
} finally {
setThreadPriority(previousPriority)
}
Priorities list
Process Priority
Implemented only for Windows platform
Example
const { setProcessPriority, getProcessPriority, isWin, PROCESS_PRIORITY_REALTIME } = require('rdtsc')
if (isWin) {
console.log(getProcessPriority())
} else {
console.log(getProcessPriority())
}
var previousPriority = setProcessPriority(PROCESS_PRIORITY_REALTIME)
try {
} finally {
setProcessPriority(previousPriority)
}
Priorities list
License
Unlimited Free