• 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('stream', (stream) => {
20    const out = fs.createReadStream(file);
21    stream.respond();
22    out.pipe(stream);
23    stream.on('error', (err) => {});
24  });
25  server.listen(0, () => {
26    bench.http({
27      path: '/',
28      port: server.address().port,
29      requests,
30      maxConcurrentStreams: streams,
31      clients,
32      duration,
33      threads: clients,
34    }, () => { server.close(); });
35  });
36}
37