node/benchmark/http/headers.js
Rich Trott 1e35d5802a benchmark: fix http/headers.js with test-double
The http/headers.js benchmark fails if wrk or autocannon are not
installed. This is because the benchmark exceeds the default permissible
length for HTTP headers. Reduce the largest benchmarks to fit within the
8192 default as that is what we should be optimizing for.

Fixes: https://github.com/nodejs/node/issues/31022

PR-URL: https://github.com/nodejs/node/pull/36794
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com>
2021-01-06 21:18:47 -08:00

40 lines
906 B
JavaScript

'use strict';
const common = require('../common.js');
const http = require('http');
const bench = common.createBenchmark(main, {
n: [10, 600],
len: [1, 100],
duration: 5
});
function main({ len, n, duration }) {
const headers = {
'Connection': 'keep-alive',
'Transfer-Encoding': 'chunked',
};
// TODO(BridgeAR): Change this benchmark to use grouped arguments when
// implemented. https://github.com/nodejs/node/issues/26425
const Is = [ ...Array(Math.max(n / len, 1)).keys() ];
const Js = [ ...Array(len).keys() ];
for (const i of Is) {
headers[`foo${i}`] = Js.map(() => `some header value ${i}`);
}
const server = http.createServer((req, res) => {
res.writeHead(200, headers);
res.end();
});
server.listen(common.PORT, () => {
bench.http({
path: '/',
connections: 10,
duration
}, () => {
server.close();
});
});
}