summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-10-25 16:17:07 +0200
committerAnna Henningsen <anna@addaleax.net>2019-10-28 14:34:25 +0100
commitb35181f877d5a92e8bb52eb071489f2a7d87494b (patch)
treec90e26cce8d93734912a03311c8ecbc68d93fded /benchmark
parent5783ed7667d2aab87d30ffddbb5cd7c1c5099cb6 (diff)
downloadandroid-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.js12
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();