diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2017-02-01 07:28:59 +0800 |
---|---|---|
committer | Joyee Cheung <joyeec9h3@gmail.com> | 2017-02-06 11:25:21 +0800 |
commit | 5e4545e18f707e9ab28a50bd30f29b06320c8234 (patch) | |
tree | 035d34e7f60d30291c6ef4a018ac133113f73109 /benchmark/assert/deepequal-prims-and-objs-big-loop.js | |
parent | 6c7fbd746605d1ea48b2c68555ac802c1e3658d5 (diff) | |
download | android-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.js | 43 |
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); } |