/opt/canhelp/node_modules/busboy/bench
NameSizeModeActions
bench-multipart-fields-100mb-big.js31780644editdlrm
bench-multipart-fields-100mb-small.js31690644editdlrm
bench-multipart-files-100mb-big.js33490644editdlrm
bench-multipart-files-100mb-small.js33400644editdlrm
bench-urlencoded-fields-100pairs-small.js22110644editdlrm
bench-urlencoded-fields-900pairs-small-alt.js18080644editdlrm
Edit: /opt/canhelp/node_modules/busboy/bench/bench-urlencoded-fields-900pairs-small-alt.js (1808B)
'use strict'; const buffers = [ Buffer.from( (new Array(900)).fill('').map((_, i) => `key${i}=value${i}`).join('&') ), ]; const calls = { field: 0, end: 0, }; const moduleName = process.argv[2]; switch (moduleName) { case 'busboy': { const busboy = require('busboy'); console.time(moduleName); const parser = busboy({ limits: { fieldSizeLimit: Infinity, }, headers: { 'content-type': 'application/x-www-form-urlencoded; charset=utf-8', }, }); parser.on('field', (name, val, info) => { ++calls.field; }).on('close', () => { ++calls.end; console.timeEnd(moduleName); }); for (const buf of buffers) parser.write(buf); parser.end(); break; } case 'formidable': { const QuerystringParser = require('formidable/src/parsers/Querystring.js'); console.time(moduleName); const parser = new QuerystringParser(); parser.on('data', (obj) => { ++calls.field; }).on('end', () => { ++calls.end; console.timeEnd(moduleName); }); for (const buf of buffers) parser.write(buf); parser.end(); break; } case 'formidable-streaming': { const QuerystringParser = require('formidable/src/parsers/StreamingQuerystring.js'); console.time(moduleName); const parser = new QuerystringParser(); parser.on('data', (obj) => { ++calls.field; }).on('end', () => { ++calls.end; console.timeEnd(moduleName); }); for (const buf of buffers) parser.write(buf); parser.end(); break; } default: if (moduleName === undefined) console.error('Missing parser module name'); else console.error(`Invalid parser module name: ${moduleName}`); process.exit(1); }