mirror of
https://github.com/nodejs/node.git
synced 2025-05-09 07:27:32 +00:00

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>
40 lines
906 B
JavaScript
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();
|
|
});
|
|
});
|
|
}
|