1'use strict'; 2 3const common = require('../common.js'); 4 5const bench = common.createBenchmark(main, { 6 encoding: ['', 'utf8', 'ascii', 'latin1', 'hex', 'UCS-2'], 7 args: [0, 1, 3], 8 len: [1, 64, 1024], 9 n: [1e6], 10}, { 11 combinationFilter: (p) => { 12 return (p.args === 0 && p.encoding === '') || 13 (p.args !== 0 && p.encoding !== ''); 14 }, 15}); 16 17function main({ encoding, args, len, n }) { 18 const buf = Buffer.alloc(len, 42); 19 20 if (encoding.length === 0) 21 encoding = undefined; 22 23 switch (args) { 24 case 1: 25 bench.start(); 26 for (let i = 0; i < n; i += 1) 27 buf.toString(encoding); 28 bench.end(n); 29 break; 30 case 2: 31 bench.start(); 32 for (let i = 0; i < n; i += 1) 33 buf.toString(encoding, 0); 34 bench.end(n); 35 break; 36 case 3: 37 bench.start(); 38 for (let i = 0; i < n; i += 1) 39 buf.toString(encoding, 0, len); 40 bench.end(n); 41 break; 42 default: 43 bench.start(); 44 for (let i = 0; i < n; i += 1) 45 buf.toString(); 46 bench.end(n); 47 break; 48 } 49} 50