summaryrefslogtreecommitdiff
path: root/benchmark/assert/deepequal-prims-and-objs-big-loop.js
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2017-02-01 07:28:59 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2017-02-06 11:25:21 +0800
commit5e4545e18f707e9ab28a50bd30f29b06320c8234 (patch)
tree035d34e7f60d30291c6ef4a018ac133113f73109 /benchmark/assert/deepequal-prims-and-objs-big-loop.js
parent6c7fbd746605d1ea48b2c68555ac802c1e3658d5 (diff)
downloadandroid-node-v8-5e4545e18f707e9ab28a50bd30f29b06320c8234.tar.gz
android-node-v8-5e4545e18f707e9ab28a50bd30f29b06320c8234.tar.bz2
android-node-v8-5e4545e18f707e9ab28a50bd30f29b06320c8234.zip
benchmark: add assert.deep[Strict]Equal benchmarks
* Move numbers into configuration * Add buffer comparison benchmark * Add assert.deepStrictEqual benchmarks PR-URL: https://github.com/nodejs/node/pull/11092 Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/assert/deepequal-prims-and-objs-big-loop.js')
-rw-r--r--benchmark/assert/deepequal-prims-and-objs-big-loop.js43
1 files changed, 29 insertions, 14 deletions
diff --git a/benchmark/assert/deepequal-prims-and-objs-big-loop.js b/benchmark/assert/deepequal-prims-and-objs-big-loop.js
index dea084bc98..781c5ad754 100644
--- a/benchmark/assert/deepequal-prims-and-objs-big-loop.js
+++ b/benchmark/assert/deepequal-prims-and-objs-big-loop.js
@@ -1,6 +1,6 @@
'use strict';
-var common = require('../common.js');
-var assert = require('assert');
+const common = require('../common.js');
+const assert = require('assert');
const primValues = {
'null': null,
@@ -13,22 +13,37 @@ const primValues = {
'new-array': new Array([1, 2, 3])
};
-var bench = common.createBenchmark(main, {
+const bench = common.createBenchmark(main, {
prim: Object.keys(primValues),
- n: [1e5]
+ n: [1e6],
+ method: ['strict', 'nonstrict']
});
function main(conf) {
- var prim = primValues[conf.prim];
- var n = +conf.n;
- var x;
+ const prim = primValues[conf.prim];
+ const n = +conf.n;
+ const actual = prim;
+ const expected = prim;
+ var i;
- bench.start();
-
- for (x = 0; x < n; x++) {
- // eslint-disable-next-line no-restricted-properties
- assert.deepEqual(new Array([prim]), new Array([prim]));
+ // Creates new array to avoid loop invariant code motion
+ switch (conf.method) {
+ case 'strict':
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ // eslint-disable-next-line no-restricted-properties
+ assert.deepEqual([actual], [expected]);
+ }
+ bench.end(n);
+ break;
+ case 'nonstrict':
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ assert.deepStrictEqual([actual], [expected]);
+ }
+ bench.end(n);
+ break;
+ default:
+ throw new Error('Unsupported method');
}
-
- bench.end(n);
}