diff options
author | Robert Nagy <ronagy@icloud.com> | 2019-12-23 13:43:36 +0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-12-26 01:45:49 +0300 |
commit | f68285b098e6a132af67c82965f8088fd8c6f302 (patch) | |
tree | 7d02f11020279cf175c5328c4ae14ce18451b29d /benchmark | |
parent | 0e21c1e637bf6d844473d09dca3508f2bf547b89 (diff) |
benchmark: include writev in benchmark
Currently we only consider write when benchmarking.
PR-URL: https://github.com/nodejs/node/pull/31066
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/streams/writable-manywrites.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/benchmark/streams/writable-manywrites.js b/benchmark/streams/writable-manywrites.js index ebd83779b76..049bf8eb281 100644 --- a/benchmark/streams/writable-manywrites.js +++ b/benchmark/streams/writable-manywrites.js @@ -5,25 +5,36 @@ const Writable = require('stream').Writable; const bench = common.createBenchmark(main, { n: [2e6], - sync: ['yes', 'no'] + sync: ['yes', 'no'], + writev: ['yes', 'no'], + callback: ['yes', 'no'] }); -function main({ n, sync }) { +function main({ n, sync, writev, callback }) { const b = Buffer.allocUnsafe(1024); const s = new Writable(); sync = sync === 'yes'; - s._write = function(chunk, encoding, cb) { + + const writecb = (cb) => { if (sync) cb(); else process.nextTick(cb); }; + if (writev === 'yes') { + s._writev = (chunks, cb) => writecb(cb); + } else { + s._write = (chunk, encoding, cb) => writecb(cb); + } + + const cb = callback === 'yes' ? () => {} : null; + bench.start(); let k = 0; function run() { - while (k++ < n && s.write(b)); + while (k++ < n && s.write(b, cb)); if (k >= n) bench.end(n); } |