diff options
author | Brian White <mscdex@mscdex.net> | 2017-04-10 05:07:58 -0400 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-04-14 22:36:46 +0200 |
commit | 4749ec2aa31523c7dad796695c223f9d1a2f1c34 (patch) | |
tree | 664bda46c9c5a946c6d4c348eb6bd33df30cc398 /benchmark | |
parent | 3ee4a1a281d6bd4bd7be0577aed41a0f1c9bb1a0 (diff) | |
download | android-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.tar.gz android-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.tar.bz2 android-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.zip |
buffer: optimize write()
PR-URL: https://github.com/nodejs/node/pull/12361
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/buffers/buffer-write-string.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/benchmark/buffers/buffer-write-string.js b/benchmark/buffers/buffer-write-string.js new file mode 100644 index 0000000000..927aa0b684 --- /dev/null +++ b/benchmark/buffers/buffer-write-string.js @@ -0,0 +1,70 @@ +'use strict'; + +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + encoding: [ + '', 'utf8', 'ascii', 'hex', 'UCS-2', 'utf16le', 'latin1', 'binary' + ], + args: [ '', 'offset', 'offset+length' ], + len: [10, 2048], + n: [1e7] +}); + +function main(conf) { + const len = +conf.len; + const n = +conf.n; + const encoding = conf.encoding; + const args = conf.args; + + const string = 'a'.repeat(len); + const buf = Buffer.allocUnsafe(len); + + var i; + + switch (args) { + case 'offset': + if (encoding) { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string, 0, encoding); + } + bench.end(n); + } else { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string, 0); + } + bench.end(n); + } + break; + case 'offset+length': + if (encoding) { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string, 0, buf.length, encoding); + } + bench.end(n); + } else { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string, 0, buf.length); + } + bench.end(n); + } + break; + default: + if (encoding) { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string, encoding); + } + bench.end(n); + } else { + bench.start(); + for (i = 0; i < n; ++i) { + buf.write(string); + } + bench.end(n); + } + } +} |