diff options
author | Trevor Norris <trev.norris@gmail.com> | 2015-11-11 00:15:15 -0700 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2015-12-17 17:29:16 -0700 |
commit | 36e8a2c63dc17d7f6e473d0ce5bfa67f8d0fe31d (patch) | |
tree | b6413988b2475a75045be2c735350f0a8cf860a1 /benchmark | |
parent | 946315f7d81826f8edd4b9ada87f4285cf88539e (diff) | |
download | node-new-36e8a2c63dc17d7f6e473d0ce5bfa67f8d0fe31d.tar.gz |
node: improve performance of hrtime()
process.hrtime() was performing too many operations in C++ that could be
done faster in JS. Move those operations over by creating a length 4
Uint32Array and perform bitwise operations on the seconds so that it was
unnecessary for the native API to do any object creation or set any
fields.
This has improved performance from ~350 ns/op to ~65 ns/op. Light
benchmark included to demonstrate the performance change.
PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/misc/bench-hrtime.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/benchmark/misc/bench-hrtime.js b/benchmark/misc/bench-hrtime.js new file mode 100644 index 0000000000..661dff43b0 --- /dev/null +++ b/benchmark/misc/bench-hrtime.js @@ -0,0 +1,18 @@ +'use strict'; + +const common = require('../common'); + +const bench = common.createBenchmark(main, { + n: [1e6] +}); + + +function main(conf) { + const n = conf.n >>> 0; + + bench.start(); + for (var i = 0; i < n; i++) { + process.hrtime(); + } + bench.end(n); +} |