'use strict'; const common = require('../common.js'); const zlib = require('zlib'); const bench = common.createBenchmark(main, { method: ['inflate', 'inflateSync'], inputLen: [1024], n: [4e5] }); function main({ n, method, inputLen }) { // Default method value for tests. method = method || 'inflate'; const chunk = zlib.deflateSync(Buffer.alloc(inputLen, 'a')); let i = 0; switch (method) { // Performs `n` single inflate operations case 'inflate': { const inflate = zlib.inflate; bench.start(); (function next(err, result) { if (i++ === n) return bench.end(n); inflate(chunk, next); })(); break; } // Performs `n` single inflateSync operations case 'inflateSync': { const inflateSync = zlib.inflateSync; bench.start(); for (; i < n; ++i) inflateSync(chunk); bench.end(n); break; } default: throw new Error('Unsupported inflate method'); } }