diff options
author | Jackson Tian <shyvo1987@gmail.com> | 2015-12-17 17:44:34 +0800 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2015-12-23 17:15:19 -0800 |
commit | 5396baf7c12e118cf42e246d1d0773337edd23f1 (patch) | |
tree | 40cc4d7f50e39e08115745fc6cf54e7d3a70b29f /benchmark | |
parent | 26a82971b2bd7f27f3d75833bc7051738952874a (diff) | |
download | android-node-v8-5396baf7c12e118cf42e246d1d0773337edd23f1.tar.gz android-node-v8-5396baf7c12e118cf42e246d1d0773337edd23f1.tar.bz2 android-node-v8-5396baf7c12e118cf42e246d1d0773337edd23f1.zip |
buffer: faster case for create Buffer from new Buffer(0)
When create Buffer from a Buffer will copy data
from old to new even though length is zero.
This patch can improve edge case 4x faster.
following is benchmark results.
new: buffers/buffer_zero.js n=1024: 2463.53891
old: buffers/buffer_zero.js n=1024: 618.70801
PR-URL: https://github.com/nodejs/node/pull/4326
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/buffers/buffer_zero.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/benchmark/buffers/buffer_zero.js b/benchmark/buffers/buffer_zero.js new file mode 100644 index 0000000000..461378758b --- /dev/null +++ b/benchmark/buffers/buffer_zero.js @@ -0,0 +1,18 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + n: [1024] +}); + +const zero = new Buffer(0); + +function main(conf) { + var n = +conf.n; + bench.start(); + for (let i = 0; i < n * 1024; i++) { + new Buffer(zero); + } + bench.end(n); +} |