diff options
author | Fangdun Cai (Fundon) <cfddream@gmail.com> | 2016-09-21 06:47:26 +0300 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-09-29 21:14:51 +0300 |
commit | 9030e098175e533d622612e3ea4ac98e9aee598a (patch) | |
tree | c0fb420b1eb70188c67a4732642c9ebd45bb7c20 /benchmark | |
parent | 1fcfdab3df06a5ca6235edfd7361102d369ab986 (diff) |
benchmark: add benchmark for destructuring object
PR-URL: https://github.com/nodejs/node/pull/8680
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/es/destructuring-object-bench.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/benchmark/es/destructuring-object-bench.js b/benchmark/es/destructuring-object-bench.js new file mode 100644 index 00000000000..a3277aa6bfb --- /dev/null +++ b/benchmark/es/destructuring-object-bench.js @@ -0,0 +1,49 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + method: ['normal', 'destructureObject'], + millions: [100] +}); + +function runNormal(n) { + var i = 0; + var o = { x: 0, y: 1 }; + bench.start(); + for (; i < n; i++) { + /* eslint-disable no-unused-vars */ + var x = o.x; + var y = o.y; + var r = o.r || 2; + /* eslint-enable no-unused-vars */ + } + bench.end(n / 1e6); +} + +function runDestructured(n) { + var i = 0; + var o = { x: 0, y: 1 }; + bench.start(); + for (; i < n; i++) { + /* eslint-disable no-unused-vars */ + var { x, y, r = 2 } = o; + /* eslint-enable no-unused-vars */ + } + bench.end(n / 1e6); +} + +function main(conf) { + const n = +conf.millions * 1e6; + + switch (conf.method) { + case 'normal': + runNormal(n); + break; + case 'destructureObject': + runDestructured(n); + break; + default: + throw new Error('Unexpected method'); + } +} |