• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const { createBenchmark } = require('../common.js');
4
5const { connect, createServer } = require('net');
6const { open } = require('fs');
7
8const bench = createBenchmark(main, {
9  handlesCount: [1e4],
10  requestsCount: [1e4],
11  timeoutsCount: [1e4],
12  immediatesCount: [1e4],
13  n: [1e5],
14});
15
16function main({ handlesCount, requestsCount, timeoutsCount, immediatesCount, n }) {
17  const server = createServer().listen();
18  const clients = [];
19  for (let i = 0; i < handlesCount; i++) {
20    clients.push(connect({ port: server.address().port }));
21  }
22
23  for (let i = 0; i < requestsCount; i++) {
24    open(__filename, 'r', () => {});
25  }
26
27  for (let i = 0; i < timeoutsCount; ++i) {
28    setTimeout(() => {}, 1);
29  }
30
31  for (let i = 0; i < immediatesCount; ++i) {
32    setImmediate(() => {});
33  }
34
35  bench.start();
36  for (let i = 0; i < n; ++i) {
37    process.getActiveResourcesInfo();
38  }
39  bench.end(n);
40
41  for (const client of clients) {
42    client.destroy();
43  }
44  server.close();
45}
46