'use strict'; const common = require('../common.js'); const bench = common.createBenchmark(main, { encoding: [ '', 'utf8', 'ascii', 'hex', 'utf16le', 'latin1', ], args: [ '', 'offset', 'offset+length' ], len: [2048], n: [1e6] }); function main({ len, n, encoding, args }) { let string; let start = 0; const buf = Buffer.allocUnsafe(len); var i; switch (args) { case 'offset': string = 'a'.repeat(Math.floor(len / 2)); start = len - string.length; if (encoding) { bench.start(); for (i = 0; i < n; ++i) { buf.write(string, start, encoding); } bench.end(n); } else { bench.start(); for (i = 0; i < n; ++i) { buf.write(string, start); } bench.end(n); } break; case 'offset+length': string = 'a'.repeat(len); 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: string = 'a'.repeat(len); 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); } } }