| 'use strict'; |
| const common = require('../common.js'); |
| const { Writable } = require('stream'); |
| |
| const bench = common.createBenchmark(main, { |
| n: [50e6], |
| kind: ['write', 'object-mode', 'writev'], |
| }); |
| const ABC = new Uint8Array([0x41, 0x42, 0x43]); |
| |
| function main({ n, kind }) { |
| switch (kind) { |
| case 'write': { |
| bench.start(); |
| const wr = new Writable({ |
| write(chunk, encoding, cb) { |
| cb(); |
| }, |
| }); |
| for (let i = 0; i < n; ++i) wr.write(ABC); |
| bench.end(n); |
| break; |
| } |
| |
| case 'object-mode': { |
| bench.start(); |
| const wr = new Writable({ |
| objectMode: true, |
| write(chunk, encoding, cb) { |
| cb(); |
| }, |
| }); |
| for (let i = 0; i < n; ++i) wr.write(ABC); |
| bench.end(n); |
| break; |
| } |
| case 'writev': { |
| bench.start(); |
| const wr = new Writable({ |
| writev(chunks, cb) { |
| cb(); |
| }, |
| }); |
| for (let i = 0; i < n; ++i) wr.write(ABC); |
| bench.end(n); |
| break; |
| } |
| default: |
| throw new Error('Invalid kind'); |
| } |
| } |