summaryrefslogtreecommitdiff
path: root/benchmark/fs/bench-stat.js
blob: 0b2e1972e2cb80d8db1ed2c6176607d5280a8d98 (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
'use strict';

const common = require('../common');
const fs = require('fs');

const bench = common.createBenchmark(main, {
  n: [20e4],
  statType: ['fstat', 'lstat', 'stat']
});


function main({ n, statType }) {
  var arg;
  if (statType === 'fstat')
    arg = fs.openSync(__filename, 'r');
  else
    arg = __filename;

  bench.start();
  (function r(cntr, fn) {
    if (cntr-- <= 0) {
      bench.end(n);
      if (statType === 'fstat')
        fs.closeSync(arg);
      return;
    }
    fn(arg, () => {
      r(cntr, fn);
    });
  }(n, fs[statType]));
}