summaryrefslogtreecommitdiff
path: root/benchmark/http/headers.js
blob: f8014a6a085d19129fe15a0b40f003acc1791a95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';

const common = require('../common.js');
const http = require('http');

const bench = common.createBenchmark(main, {
  n: [10, 1000],
  len: [1, 100],
});

function main({ len, n }) {
  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
    }, () => {
      server.close();
    });
  });
}