diff options
author | Fangdun Cai (Fundon) <cfddream@gmail.com> | 2016-09-21 11:47:26 +0800 |
---|---|---|
committer | Ilkka Myller <ilkka.myller@nodefield.com> | 2016-09-24 20:39:37 +0300 |
commit | 7458fbb0c7187f103d04388df2403d1ad2d72d03 (patch) | |
tree | bf307b8ed45c706cca3359694e99a6f54b692051 /benchmark/es/destructuring-object-bench.js | |
parent | 43e1ca84f2bad482df425504475b1f9eeaae9fda (diff) | |
download | android-node-v8-7458fbb0c7187f103d04388df2403d1ad2d72d03.tar.gz android-node-v8-7458fbb0c7187f103d04388df2403d1ad2d72d03.tar.bz2 android-node-v8-7458fbb0c7187f103d04388df2403d1ad2d72d03.zip |
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/es/destructuring-object-bench.js')
-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 0000000000..a3277aa6bf --- /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'); + } +} |