benchmark: add more options to map-bench
PR-URL: https://github.com/nodejs/node/pull/11930 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
d9b0e4c729
commit
a6e69f8c08
@ -4,7 +4,10 @@ const common = require('../common.js');
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
method: ['object', 'nullProtoObject', 'fakeMap', 'map'],
|
||||
method: [
|
||||
'object', 'nullProtoObject', 'nullProtoLiteralObject', 'storageObject',
|
||||
'fakeMap', 'map'
|
||||
],
|
||||
millions: [1]
|
||||
});
|
||||
|
||||
@ -36,6 +39,37 @@ function runNullProtoObject(n) {
|
||||
bench.end(n / 1e6);
|
||||
}
|
||||
|
||||
function runNullProtoLiteralObject(n) {
|
||||
const m = { __proto__: null };
|
||||
var i = 0;
|
||||
bench.start();
|
||||
for (; i < n; i++) {
|
||||
m['i' + i] = i;
|
||||
m['s' + i] = String(i);
|
||||
assert.strictEqual(String(m['i' + i]), m['s' + i]);
|
||||
m['i' + i] = undefined;
|
||||
m['s' + i] = undefined;
|
||||
}
|
||||
bench.end(n / 1e6);
|
||||
}
|
||||
|
||||
function StorageObject() {}
|
||||
StorageObject.prototype = Object.create(null);
|
||||
|
||||
function runStorageObject(n) {
|
||||
const m = new StorageObject();
|
||||
var i = 0;
|
||||
bench.start();
|
||||
for (; i < n; i++) {
|
||||
m['i' + i] = i;
|
||||
m['s' + i] = String(i);
|
||||
assert.strictEqual(String(m['i' + i]), m['s' + i]);
|
||||
m['i' + i] = undefined;
|
||||
m['s' + i] = undefined;
|
||||
}
|
||||
bench.end(n / 1e6);
|
||||
}
|
||||
|
||||
function fakeMap() {
|
||||
const m = {};
|
||||
return {
|
||||
@ -84,6 +118,12 @@ function main(conf) {
|
||||
case 'nullProtoObject':
|
||||
runNullProtoObject(n);
|
||||
break;
|
||||
case 'nullProtoLiteralObject':
|
||||
runNullProtoLiteralObject(n);
|
||||
break;
|
||||
case 'storageObject':
|
||||
runStorageObject(n);
|
||||
break;
|
||||
case 'fakeMap':
|
||||
runFakeMap(n);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user