1'use strict'; 2const common = require('../common.js'); 3const { 4 Duplex, 5 Readable, 6 Transform, 7 Writable, 8} = require('stream'); 9 10const bench = common.createBenchmark(main, { 11 n: [50e6], 12 kind: ['duplex', 'readable', 'transform', 'writable'], 13}); 14 15function main({ n, kind }) { 16 switch (kind) { 17 case 'duplex': 18 new Duplex({}); 19 new Duplex(); 20 21 bench.start(); 22 for (let i = 0; i < n; ++i) 23 new Duplex(); 24 bench.end(n); 25 break; 26 case 'readable': 27 new Readable({}); 28 new Readable(); 29 30 bench.start(); 31 for (let i = 0; i < n; ++i) 32 new Readable(); 33 bench.end(n); 34 break; 35 case 'writable': 36 new Writable({}); 37 new Writable(); 38 39 bench.start(); 40 for (let i = 0; i < n; ++i) 41 new Writable(); 42 bench.end(n); 43 break; 44 case 'transform': 45 new Transform({}); 46 new Transform(); 47 48 bench.start(); 49 for (let i = 0; i < n; ++i) 50 new Transform(); 51 bench.end(n); 52 break; 53 default: 54 throw new Error('Invalid kind'); 55 } 56} 57