• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common.js');
4const path = require('path');
5const fs = require('fs');
6const file = path.join(path.resolve(__dirname, '../fixtures'), 'alice.html');
7
8const bench = common.createBenchmark(main, {
9  requests: [100, 1000, 5000],
10  streams: [1, 10, 20, 40, 100, 200],
11  clients: [2],
12  benchmarker: ['test-double-http2'],
13  duration: 5
14}, { flags: ['--no-warnings'] });
15
16function main({ requests, streams, clients, duration }) {
17  const http2 = require('http2');
18  const server = http2.createServer();
19  server.on('request', (req, res) => {
20    const out = fs.createReadStream(file);
21    res.setHeader('content-type', 'text/html');
22    out.pipe(res);
23    out.on('error', (err) => {
24      res.destroy();
25    });
26  });
27  server.listen(0, () => {
28    bench.http({
29      path: '/',
30      port: server.address().port,
31      requests,
32      maxConcurrentStreams: streams,
33      clients,
34      threads: clients,
35      duration
36    }, () => { server.close(); });
37  });
38}
39