browser support for process.hrtime()
.
883 bytes (minified and gzipped). No dependencies. Size Limit controls the size.
npm install browser-hrtime
require('browser-hrtime');
const time = process.hrtime();// [ 1800216, 25 ]
setTimeout(() => {
const diff = process.hrtime(time);// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);
const hrtime = require('browser-hrtime');
const time = hrtime();// [ 1800216, 25 ]
setTimeout(() => {
const diff = hrtime(time);// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * require + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);
Add "esModuleInterop": true
to tsconfig.json
or use:
import hrtime = require('browser-hrtime');
import * as hrtime from 'browser-hrtime';
const time = hrtime();// [ 1800216, 25 ]
setTimeout(() => {
const diff = hrtime(time);// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);
or as polyfill:
import 'browser-hrtime';
const time = process.hrtime();// [ 1800216, 25 ]
setTimeout(() => {
const diff = process.hrtime(time);// [ 1, 552 ]
console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);
add to src/polyfills.ts
:
import 'browser-hrtime';
Add @types/node to your Angular app
npm i -S @types/node
Then in tsconfig.json
"angularCompilerOptions": {
"types" : ["node"]
....
}
<script src="node_modules/browser-hrtime/lib/hrtime.js"></script>
<!-- Or from CDN: -->
<!-- <script crossorigin src="https://unpkg.com/browser-hrtime/lib/hrtime.js"></script> -->
console.log(hrtime());
const first = process.hrtime();
console.log(first);
console.log(process.hrtime(first));
see NodeJS documenation for detailed process.hrtime API
Clone project from Github
git clone [email protected]:cabinjs/browser-hrtime.git
Install npm packages
cd browser-hrtime
npm install
Build sources:
npm run build
Run tests:
npm run test