Skip to content

Commit 08e79f9

Browse files
committed
fs: add rmsync recursive benchmark
1 parent 982c641 commit 08e79f9

File tree

3 files changed

+290
-175
lines changed

3 files changed

+290
-175
lines changed

benchmark/fs/bench-rmdirSync.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
const fs = require('fs');
5+
const tmpdir = require('../../test/common/tmpdir');
6+
tmpdir.refresh();
7+
8+
const bench = common.createBenchmark(main, {
9+
type: ['existing', 'non-existing'],
10+
n: [1e3],
11+
});
12+
13+
function main({ n, type }) {
14+
switch (type) {
15+
case 'existing': {
16+
for (let i = 0; i < n; i++) {
17+
const p = tmpdir.resolve(`rmdirsync-bench-dir-${i}`);
18+
fs.mkdirSync(p, { recursive: true });
19+
}
20+
21+
bench.start();
22+
for (let i = 0; i < n; i++) {
23+
const p = tmpdir.resolve(`rmdirsync-bench-dir-${i}`);
24+
25+
fs.rmdirSync(p, {
26+
recursive: true,
27+
maxRetries: 3,
28+
});
29+
}
30+
bench.end(n);
31+
break;
32+
}
33+
case 'non-existing': {
34+
bench.start();
35+
for (let i = 0; i < n; i++) {
36+
try {
37+
fs.rmdirSync(tmpdir.resolve(`.non-existent-folder-${i}`), {
38+
recursive: true,
39+
});
40+
} catch {
41+
// do nothing
42+
}
43+
}
44+
bench.end(n);
45+
break;
46+
}
47+
default:
48+
new Error('Invalid type');
49+
}
50+
}

0 commit comments

Comments
 (0)