Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2017-02-23 20:45:10 +0300
committerItalo A. Casas <me@italoacasas.com>2017-02-27 03:21:26 +0300
commit758126301ec0af32772dd0ba450d6dfd42744090 (patch)
treeff1c2e3ac21549bf8a2e1fd8db2647771a668fb0 /benchmark
parentdb06c7311b87e35556ab36fb6aa89f6ba45e1580 (diff)
fs: improve performance for sync stat() functions
PR-URL: https://github.com/nodejs/node/pull/11522 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/fs/bench-statSync.js32
1 files changed, 25 insertions, 7 deletions
diff --git a/benchmark/fs/bench-statSync.js b/benchmark/fs/bench-statSync.js
index ba1e8168b4a..4bc2ecd65a3 100644
--- a/benchmark/fs/bench-statSync.js
+++ b/benchmark/fs/bench-statSync.js
@@ -5,17 +5,35 @@ const fs = require('fs');
const bench = common.createBenchmark(main, {
n: [1e4],
- kind: ['lstatSync', 'statSync']
+ kind: ['fstatSync', 'lstatSync', 'statSync']
});
function main(conf) {
const n = conf.n >>> 0;
- const fn = fs[conf.kind];
-
- bench.start();
- for (var i = 0; i < n; i++) {
- fn(__filename);
+ var fn;
+ var i;
+ switch (conf.kind) {
+ case 'statSync':
+ case 'lstatSync':
+ fn = fs[conf.kind];
+ bench.start();
+ for (i = 0; i < n; i++) {
+ fn(__filename);
+ }
+ bench.end(n);
+ break;
+ case 'fstatSync':
+ fn = fs.fstatSync;
+ const fd = fs.openSync(__filename, 'r');
+ bench.start();
+ for (i = 0; i < n; i++) {
+ fn(fd);
+ }
+ bench.end(n);
+ fs.closeSync(fd);
+ break;
+ default:
+ throw new Error('Invalid kind argument');
}
- bench.end(n);
}