diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-10-25 16:17:07 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-10-28 14:34:25 +0100 |
commit | b35181f877d5a92e8bb52eb071489f2a7d87494b (patch) | |
tree | c90e26cce8d93734912a03311c8ecbc68d93fded /benchmark | |
parent | 5783ed7667d2aab87d30ffddbb5cd7c1c5099cb6 (diff) | |
download | android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.tar.gz android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.tar.bz2 android-node-v8-b35181f877d5a92e8bb52eb071489f2a7d87494b.zip |
fs: add `bufferSize` option to `fs.opendir()`
Add an option that controls the size of the internal
buffer.
Fixes: https://github.com/nodejs/node/issues/29941
PR-URL: https://github.com/nodejs/node/pull/30114
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/fs/bench-opendir.js | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/benchmark/fs/bench-opendir.js b/benchmark/fs/bench-opendir.js index 419c3a231a..20e178d9cc 100644 --- a/benchmark/fs/bench-opendir.js +++ b/benchmark/fs/bench-opendir.js @@ -7,10 +7,11 @@ const path = require('path'); const bench = common.createBenchmark(main, { n: [100], dir: [ 'lib', 'test/parallel'], - mode: [ 'async', 'sync', 'callback' ] + mode: [ 'async', 'sync', 'callback' ], + bufferSize: [ 4, 32, 1024 ] }); -async function main({ n, dir, mode }) { +async function main({ n, dir, mode, bufferSize }) { const fullPath = path.resolve(__dirname, '../../', dir); bench.start(); @@ -18,11 +19,12 @@ async function main({ n, dir, mode }) { let counter = 0; for (let i = 0; i < n; i++) { if (mode === 'async') { + const dir = await fs.promises.opendir(fullPath, { bufferSize }); // eslint-disable-next-line no-unused-vars - for await (const entry of await fs.promises.opendir(fullPath)) + for await (const entry of dir) counter++; } else if (mode === 'callback') { - const dir = await fs.promises.opendir(fullPath); + const dir = await fs.promises.opendir(fullPath, { bufferSize }); await new Promise((resolve, reject) => { function read() { dir.read((err, entry) => { @@ -40,7 +42,7 @@ async function main({ n, dir, mode }) { read(); }); } else { - const dir = fs.opendirSync(fullPath); + const dir = fs.opendirSync(fullPath, { bufferSize }); while (dir.readSync() !== null) counter++; dir.closeSync(); |