Permalink
Browse files

benchmark: add more options to map-bench

PR-URL: #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>
  • Loading branch information...
TimothyGu committed Mar 19, 2017
1 parent d9b0e4c commit a6e69f8c08958a0909a60b53d048b21d181e90e5
Showing with 41 additions and 1 deletion.
  1. +41 −1 benchmark/es/map-bench.js
View
@@ -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;

0 comments on commit a6e69f8

Please sign in to comment.