mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
benchmark: add util/type-check
PR-URL: https://github.com/nodejs/node/pull/15663 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
1 parent
7907534a8d
commit
f547db131f
1 file changed
+50
@@ -0,0 +1,50 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
|
||||
const arrayBuffer = new ArrayBuffer();
|
||||
const dataView = new DataView(arrayBuffer);
|
||||
const uint8Array = new Uint8Array(arrayBuffer);
|
||||
const int32Array = new Int32Array(arrayBuffer);
|
||||
|
||||
const args = {
|
||||
ArrayBufferView: {
|
||||
'true': dataView,
|
||||
'false-primitive': true,
|
||||
'false-object': arrayBuffer
|
||||
},
|
||||
TypedArray: {
|
||||
'true': int32Array,
|
||||
'false-primitive': true,
|
||||
'false-object': arrayBuffer
|
||||
},
|
||||
Uint8Array: {
|
||||
'true': uint8Array,
|
||||
'false-primitive': true,
|
||||
'false-object': int32Array
|
||||
}
|
||||
};
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
type: Object.keys(args),
|
||||
version: ['native', 'js'],
|
||||
argument: ['true', 'false-primitive', 'false-object'],
|
||||
millions: ['5']
|
||||
}, {
|
||||
flags: ['--expose-internals']
|
||||
});
|
||||
|
||||
function main(conf) {
|
||||
const util = process.binding('util');
|
||||
const types = require('internal/util/types');
|
||||
|
||||
const n = (+conf.millions * 1e6) | 0;
|
||||
const func = { native: util, js: types }[conf.version][`is${conf.type}`];
|
||||
const arg = args[conf.type][conf.argument];
|
||||
|
||||
bench.start();
|
||||
for (var i = 0; i < n; i++) {
|
||||
func(arg);
|
||||
}
|
||||
bench.end(n);
|
||||
}
|
||||
Reference in new issue
Block a user