Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fs: move rmSync implementation to c++ #53617

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

anonrig
Copy link
Member

@anonrig anonrig commented Jun 28, 2024

Work in progress.

I need to write some benchmarks before making this pull-request ready.

Benchmark on all fs commands: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1575/

@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Jun 28, 2024
@anonrig anonrig force-pushed the improve-rmSync-performance branch from c541155 to 3d2975d Compare June 28, 2024 00:39
@nodejs-github-bot

This comment was marked as outdated.

@anonrig anonrig force-pushed the improve-rmSync-performance branch from 3d2975d to d820ac1 Compare June 28, 2024 00:46
@anonrig anonrig force-pushed the improve-rmSync-performance branch from d820ac1 to 8d02638 Compare June 28, 2024 13:54
@anonrig anonrig requested review from jasnell and lemire June 28, 2024 13:54
src/node_file.cc Outdated Show resolved Hide resolved
@anonrig anonrig force-pushed the improve-rmSync-performance branch from 8d02638 to 2538925 Compare June 28, 2024 14:03
@anonrig anonrig added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs that have at least one approval, no pending requests for changes, and a CI started. labels Jun 28, 2024
@benjamingr
Copy link
Member

Benchmark results (since CI is locked down):

06:16:05                                                                                                                  confidence improvement accuracy (*)    (**)   (***)
06:16:05 fs/bench_fdatasyncSync.js n=10000 type='existing'                                                                               -0.13 %       ±0.31%  ±0.42%  ±0.55%
06:16:05 fs/bench_fdatasyncSync.js n=10000 type='non-existing'                                                                           -0.64 %       ±3.05%  ±4.06%  ±5.29%
06:16:05 fs/bench-accessSync.js n=100000 type='existing'                                                                                 -0.19 %       ±0.64%  ±0.85%  ±1.11%
06:16:05 fs/bench-accessSync.js n=100000 type='non-existing'                                                                              0.15 %       ±0.39%  ±0.51%  ±0.67%
06:16:05 fs/bench-accessSync.js n=100000 type='non-flat-existing'                                                                        -0.39 %       ±0.53%  ±0.71%  ±0.94%
06:16:05 fs/bench-chmodSync.js n=1000 type='existing'                                                                                    -0.31 %       ±1.36%  ±1.82%  ±2.37%
06:16:05 fs/bench-chmodSync.js n=1000 type='non-existing'                                                                          *     -3.16 %       ±2.91%  ±3.92%  ±5.18%
06:16:05 fs/bench-chownSync.js n=10000 method='chownSync' type='existing'                                                                -1.30 %       ±3.66%  ±4.88%  ±6.35%
06:16:05 fs/bench-chownSync.js n=10000 method='chownSync' type='non-existing'                                                            -0.18 %       ±1.33%  ±1.77%  ±2.31%
06:16:05 fs/bench-chownSync.js n=10000 method='lchownSync' type='existing'                                                               -1.38 %       ±2.74%  ±3.65%  ±4.76%
06:16:05 fs/bench-chownSync.js n=10000 method='lchownSync' type='non-existing'                                                           -0.05 %       ±1.60%  ±2.14%  ±2.78%
06:16:05 fs/bench-copyFileSync.js n=10000 type='invalid'                                                                                 -0.23 %       ±1.13%  ±1.50%  ±1.95%
06:16:05 fs/bench-copyFileSync.js n=10000 type='valid'                                                                                    0.89 %       ±4.50%  ±5.99%  ±7.81%
06:16:05 fs/bench-cpSync.js n=1                                                                                                          -7.04 %       ±7.32%  ±9.78% ±12.82%
06:16:05 fs/bench-cpSync.js n=100                                                                                                        -0.02 %       ±2.38%  ±3.17%  ±4.12%
06:16:05 fs/bench-cpSync.js n=10000                                                                                                       0.16 %       ±0.86%  ±1.15%  ±1.49%
06:16:05 fs/bench-existsSync.js n=1000000 type='existing'                                                                        ***     -1.37 %       ±0.58%  ±0.77%  ±1.01%
06:16:05 fs/bench-existsSync.js n=1000000 type='non-existing'                                                                    ***     -3.88 %       ±0.57%  ±0.75%  ±0.98%
06:16:05 fs/bench-existsSync.js n=1000000 type='non-flat-existing'                                                               ***     -1.88 %       ±0.52%  ±0.69%  ±0.92%
06:16:05 fs/bench-fchmodSync.js n=1000 type='existing'                                                                                   -3.28 %       ±5.72%  ±7.63%  ±9.96%
06:16:05 fs/bench-fchmodSync.js n=1000 type='non-existing'                                                                                0.53 %       ±4.27%  ±5.68%  ±7.40%
06:16:05 fs/bench-fsyncSync.js n=10000 type='existing'                                                                             *      0.53 %       ±0.42%  ±0.56%  ±0.74%
06:16:05 fs/bench-fsyncSync.js n=10000 type='non-existing'                                                                                0.29 %       ±2.78%  ±3.70%  ±4.81%
06:16:05 fs/bench-ftruncateSync.js n=10000 type='invalid'                                                                                -1.07 %       ±1.42%  ±1.89%  ±2.46%
06:16:05 fs/bench-ftruncateSync.js n=10000 type='valid'                                                                                   0.48 %       ±3.52%  ±4.69%  ±6.11%
06:16:05 fs/bench-linkSync.js n=1000 type='invalid'                                                                                      -1.70 %       ±3.97%  ±5.28%  ±6.87%
06:16:05 fs/bench-linkSync.js n=1000 type='valid'                                                                                         0.45 %       ±5.19%  ±6.90%  ±8.99%
06:16:05 fs/bench-mkdirp.js n=10000                                                                                                      21.16 %      ±25.59% ±34.09% ±44.44%
06:16:05 fs/bench-mkdirSync.js n=1000 recursive='false' type='existing'                                                                  -2.22 %       ±2.53%  ±3.38%  ±4.43%
06:16:05 fs/bench-mkdirSync.js n=1000 recursive='false' type='non-existing'                                                              -0.05 %      ±13.50% ±17.97% ±23.39%
06:16:05 fs/bench-mkdirSync.js n=1000 recursive='true' type='existing'                                                             *     -3.99 %       ±3.21%  ±4.28%  ±5.57%
06:16:05 fs/bench-mkdirSync.js n=1000 recursive='true' type='non-existing'                                                               -1.26 %      ±10.89% ±14.49% ±18.86%
06:16:05 fs/bench-mkdtempSync.js n=10000 type='invalid'                                                                                   0.71 %       ±1.26%  ±1.69%  ±2.24%
06:16:05 fs/bench-mkdtempSync.js n=10000 type='valid-buffer'                                                                             -2.67 %      ±12.06% ±16.05% ±20.89%
06:16:05 fs/bench-mkdtempSync.js n=10000 type='valid-string'                                                                              3.13 %      ±11.61% ±15.45% ±20.11%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='async' dir='lib' n=100                                                                 1.69 %       ±3.89%  ±5.18%  ±6.76%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='async' dir='test/parallel' n=100                                                       0.12 %       ±0.75%  ±1.00%  ±1.30%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='callback' dir='lib' n=100                                                             -0.47 %       ±1.98%  ±2.64%  ±3.43%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='callback' dir='test/parallel' n=100                                                   10.67 %      ±13.32% ±17.72% ±23.08%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='sync' dir='lib' n=100                                                                  0.45 %       ±1.16%  ±1.55%  ±2.02%
06:16:05 fs/bench-opendir.js bufferSize=1024 mode='sync' dir='test/parallel' n=100                                                        0.17 %       ±0.49%  ±0.66%  ±0.85%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='async' dir='lib' n=100                                                                   0.53 %       ±2.61%  ±3.47%  ±4.53%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='async' dir='test/parallel' n=100                                                        -0.12 %       ±0.90%  ±1.19%  ±1.55%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='callback' dir='lib' n=100                                                               -0.80 %       ±2.04%  ±2.72%  ±3.54%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='callback' dir='test/parallel' n=100                                                      0.15 %       ±1.49%  ±1.99%  ±2.59%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='sync' dir='lib' n=100                                                                   -0.08 %       ±1.70%  ±2.26%  ±2.94%
06:16:05 fs/bench-opendir.js bufferSize=32 mode='sync' dir='test/parallel' n=100                                                         -0.38 %       ±0.63%  ±0.84%  ±1.10%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='async' dir='lib' n=100                                                             *     -2.10 %       ±1.92%  ±2.57%  ±3.35%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='async' dir='test/parallel' n=100                                                          0.48 %       ±0.64%  ±0.86%  ±1.11%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='callback' dir='lib' n=100                                                                 1.17 %       ±1.92%  ±2.57%  ±3.36%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='callback' dir='test/parallel' n=100                                                *     -0.88 %       ±0.73%  ±0.97%  ±1.26%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='sync' dir='lib' n=100                                                                     0.01 %       ±1.04%  ±1.39%  ±1.81%
06:16:05 fs/bench-opendir.js bufferSize=4 mode='sync' dir='test/parallel' n=100                                                           0.33 %       ±0.39%  ±0.53%  ±0.69%
06:16:05 fs/bench-opendirSync.js n=1000 type='existing'                                                                          ***      0.70 %       ±0.29%  ±0.39%  ±0.51%
06:16:05 fs/bench-opendirSync.js n=1000 type='non-existing'                                                                               0.76 %       ±8.43% ±11.22% ±14.61%
06:16:05 fs/bench-openSync.js n=100000 type='existing'                                                                           ***     -0.97 %       ±0.55%  ±0.73%  ±0.95%
06:16:05 fs/bench-openSync.js n=100000 type='non-existing'                                                                       ***     -0.78 %       ±0.39%  ±0.52%  ±0.68%
06:16:05 fs/bench-readdir.js withFileTypes='false' dir='lib' n=10                                                                         0.50 %      ±11.80% ±15.70% ±20.44%
06:16:05 fs/bench-readdir.js withFileTypes='false' dir='test/parallel' n=10                                                               3.69 %       ±8.60% ±11.44% ±14.89%
06:16:05 fs/bench-readdir.js withFileTypes='true' dir='lib' n=10                                                                          9.21 %      ±12.09% ±16.09% ±20.94%
06:16:05 fs/bench-readdir.js withFileTypes='true' dir='test/parallel' n=10                                                               -1.26 %       ±8.42% ±11.21% ±14.60%
06:16:05 fs/bench-readdirSync.js withFileTypes='false' dir='lib' n=10                                                                    -0.52 %       ±2.45%  ±3.26%  ±4.24%
06:16:05 fs/bench-readdirSync.js withFileTypes='false' dir='test/parallel' n=10                                                           0.36 %       ±3.15%  ±4.19%  ±5.46%
06:16:05 fs/bench-readdirSync.js withFileTypes='true' dir='lib' n=10                                                                      0.04 %       ±3.38%  ±4.51%  ±5.87%
06:16:05 fs/bench-readdirSync.js withFileTypes='true' dir='test/parallel' n=10                                                           -0.42 %       ±2.71%  ±3.61%  ±4.70%
06:16:05 fs/bench-readlinkSync.js n=1000 type='invalid'                                                                                  -2.98 %       ±3.75%  ±5.00%  ±6.53%
06:16:05 fs/bench-readlinkSync.js n=1000 type='valid'                                                                                     1.68 %       ±2.13%  ±2.84%  ±3.70%
06:16:05 fs/bench-readSync.js n=10000 type='existing'                                                                                     1.05 %       ±1.33%  ±1.77%  ±2.32%
06:16:05 fs/bench-readSync.js n=10000 type='non-existing'                                                                        ***      2.30 %       ±0.35%  ±0.47%  ±0.61%
06:16:05 fs/bench-readvSync.js n=100000 type='invalid'                                                                                   -0.65 %       ±0.65%  ±0.86%  ±1.12%
06:16:05 fs/bench-readvSync.js n=100000 type='valid'                                                                             ***     -2.96 %       ±1.54%  ±2.06%  ±2.67%
06:16:05 fs/bench-realpath.js pathType='relative' n=10000                                                                                -0.15 %       ±0.84%  ±1.12%  ±1.46%
06:16:05 fs/bench-realpath.js pathType='resolved' n=10000                                                                                 0.48 %       ±0.79%  ±1.05%  ±1.36%
06:16:05 fs/bench-realpathSync.js pathType='relative' n=10000                                                                            -0.84 %       ±0.85%  ±1.13%  ±1.47%
06:16:05 fs/bench-realpathSync.js pathType='resolved' n=10000                                                                             0.40 %       ±1.51%  ±2.01%  ±2.63%
06:16:05 fs/bench-renameSync.js n=2000 type='invalid'                                                                                    -1.21 %       ±3.90%  ±5.20%  ±6.78%
06:16:05 fs/bench-renameSync.js n=2000 type='valid'                                                                                *     -0.57 %       ±0.50%  ±0.66%  ±0.86%
06:16:05 fs/bench-rmdirSync.js n=10000 type='existing'                                                                                   -0.73 %       ±2.30%  ±3.07%  ±3.99%
06:16:05 fs/bench-rmdirSync.js n=10000 type='non-existing'                                                                               -0.27 %       ±0.61%  ±0.81%  ±1.06%
06:16:05 fs/bench-stat-promise.js statType='fstat' n=200000                                                                       **     -1.32 %       ±0.98%  ±1.30%  ±1.70%
06:16:05 fs/bench-stat-promise.js statType='lstat' n=200000                                                                              -0.10 %       ±1.14%  ±1.52%  ±1.98%
06:16:05 fs/bench-stat-promise.js statType='stat' n=200000                                                                               -0.97 %       ±1.25%  ±1.67%  ±2.17%
06:16:05 fs/bench-stat.js statType='fstat' n=200000                                                                                      -0.05 %       ±1.26%  ±1.67%  ±2.18%
06:16:05 fs/bench-stat.js statType='lstat' n=200000                                                                                       0.47 %       ±1.23%  ±1.63%  ±2.12%
06:16:05 fs/bench-stat.js statType='stat' n=200000                                                                                        0.42 %       ±1.28%  ±1.70%  ±2.22%
06:16:05 fs/bench-statSync-failure.js throwType='noThrow' statSyncType='lstatSync' n=10000                                       ***     17.09 %       ±3.76%  ±5.02%  ±6.56%
06:16:05 fs/bench-statSync-failure.js throwType='noThrow' statSyncType='statSync' n=10000                                        ***     14.90 %       ±3.52%  ±4.69%  ±6.11%
06:16:05 fs/bench-statSync-failure.js throwType='throw' statSyncType='fstatSync' n=10000                                                  0.68 %       ±1.81%  ±2.40%  ±3.13%
06:16:05 fs/bench-statSync-failure.js throwType='throw' statSyncType='lstatSync' n=10000                                                  0.03 %       ±1.54%  ±2.04%  ±2.66%
06:16:05 fs/bench-statSync-failure.js throwType='throw' statSyncType='statSync' n=10000                                                  -0.24 %       ±0.97%  ±1.30%  ±1.69%
06:16:05 fs/bench-statSync.js statSyncType='fstatSync' n=10000                                                                   ***     12.37 %       ±2.89%  ±3.85%  ±5.03%
06:16:05 fs/bench-statSync.js statSyncType='lstatSync' n=10000                                                                           -0.78 %       ±4.10%  ±5.46%  ±7.14%
06:16:05 fs/bench-statSync.js statSyncType='statSync' n=10000                                                                             0.58 %       ±3.31%  ±4.44%  ±5.86%
06:16:05 fs/bench-symlinkSync.js n=1000 type='invalid'                                                                                   -0.41 %       ±3.24%  ±4.31%  ±5.62%
06:16:05 fs/bench-symlinkSync.js n=1000 type='valid'                                                                                      3.55 %       ±4.04%  ±5.37%  ±7.00%
06:16:05 fs/bench-timesSync.js n=1000 func='futimes' type='existing'                                                                      2.11 %       ±2.37%  ±3.15%  ±4.10%
06:16:05 fs/bench-timesSync.js n=1000 func='futimes' type='non-existing'                                                                 -1.57 %       ±2.26%  ±3.02%  ±3.97%
06:16:05 fs/bench-timesSync.js n=1000 func='lutimes' type='existing'                                                                      0.06 %       ±1.91%  ±2.55%  ±3.36%
06:16:05 fs/bench-timesSync.js n=1000 func='lutimes' type='non-existing'                                                                 -0.81 %       ±1.64%  ±2.19%  ±2.86%
06:16:05 fs/bench-timesSync.js n=1000 func='utimes' type='existing'                                                                      -0.94 %       ±1.00%  ±1.33%  ±1.73%
06:16:05 fs/bench-timesSync.js n=1000 func='utimes' type='non-existing'                                                                   4.01 %       ±4.01%  ±5.37%  ±7.06%
06:16:05 fs/bench-unlinkSync.js n=1000 type='existing'                                                                                   -0.02 %       ±0.59%  ±0.78%  ±1.02%
06:16:05 fs/bench-unlinkSync.js n=1000 type='non-existing'                                                                                0.50 %       ±2.89%  ±3.84%  ±5.00%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=1024 useFd='false' encoding='utf8'                    1.11 %      ±14.06% ±18.71% ±24.36%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=1024 useFd='true' encoding='utf8'                     1.22 %       ±3.07%  ±4.09%  ±5.35%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=102400 useFd='false' encoding='utf8'                 -0.49 %       ±7.68% ±10.21% ±13.29%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=102400 useFd='true' encoding='utf8'                  -0.21 %       ±1.00%  ±1.33%  ±1.74%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=1048576 useFd='false' encoding='utf8'                 2.56 %       ±7.31%  ±9.74% ±12.71%
06:16:05 fs/bench-writeFileSync.js n=1000 func='writeFile' useBuffer='false' length=1048576 useFd='true' encoding='utf8'                  0.17 %       ±0.31%  ±0.41%  ±0.54%
06:16:05 fs/bench-writevSync.js n=100000 type='invalid'                                                                                  -0.14 %       ±0.65%  ±0.87%  ±1.13%
06:16:05 fs/bench-writevSync.js n=100000 type='valid'                                                                                    -0.66 %       ±0.73%  ±0.97%  ±1.27%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1024 filesize=1024000 encodingType='asc'                                       0.45 %       ±0.66%  ±0.88%  ±1.14%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1024 filesize=1024000 encodingType='buf'                                       0.58 %       ±1.17%  ±1.56%  ±2.03%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1024 filesize=1024000 encodingType='utf'                                *      0.45 %       ±0.44%  ±0.59%  ±0.77%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1048576 filesize=1024000 encodingType='asc'                                    0.14 %       ±3.38%  ±4.50%  ±5.87%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1048576 filesize=1024000 encodingType='buf'                                   15.47 %      ±25.26% ±33.61% ±43.74%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=1048576 filesize=1024000 encodingType='utf'                           ***     -0.33 %       ±0.10%  ±0.13%  ±0.17%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=4096 filesize=1024000 encodingType='asc'                                       0.26 %       ±0.47%  ±0.63%  ±0.82%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=4096 filesize=1024000 encodingType='buf'                                       1.17 %       ±1.64%  ±2.19%  ±2.85%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=4096 filesize=1024000 encodingType='utf'                                       0.32 %       ±0.44%  ±0.58%  ±0.76%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=65535 filesize=1024000 encodingType='asc'                                     -0.77 %       ±2.11%  ±2.81%  ±3.65%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=65535 filesize=1024000 encodingType='buf'                                      7.57 %      ±11.91% ±15.85% ±20.64%
06:16:05 fs/read-stream-throughput.js n=1024 highWaterMark=65535 filesize=1024000 encodingType='utf'                             ***      1.09 %       ±0.49%  ±0.65%  ±0.85%
06:16:05 fs/readfile-partitioned.js concurrent=1 len=1024 encoding='' duration=5                                                          0.09 %       ±0.42%  ±0.56%  ±0.73%
06:16:05 fs/readfile-partitioned.js concurrent=1 len=1024 encoding='utf-8' duration=5                                                    -0.35 %       ±0.40%  ±0.53%  ±0.69%
06:16:05 fs/readfile-partitioned.js concurrent=1 len=16777216 encoding='' duration=5                                                     -0.07 %       ±0.27%  ±0.36%  ±0.47%
06:16:05 fs/readfile-partitioned.js concurrent=1 len=16777216 encoding='utf-8' duration=5                                                 0.11 %       ±0.77%  ±1.02%  ±1.33%
06:16:05 fs/readfile-partitioned.js concurrent=10 len=1024 encoding='' duration=5                                                  *     -0.82 %       ±0.77%  ±1.02%  ±1.33%
06:16:05 fs/readfile-partitioned.js concurrent=10 len=1024 encoding='utf-8' duration=5                                                   -0.64 %       ±0.66%  ±0.88%  ±1.14%
06:16:05 fs/readfile-partitioned.js concurrent=10 len=16777216 encoding='' duration=5                                                    -0.51 %       ±1.12%  ±1.50%  ±1.95%
06:16:05 fs/readfile-partitioned.js concurrent=10 len=16777216 encoding='utf-8' duration=5                                               -0.23 %       ±0.26%  ±0.35%  ±0.45%
06:16:05 fs/readfile-permission-enabled.js concurrent=1 len=1024 encoding='' duration=5                                            *     -1.69 %       ±1.43%  ±1.90%  ±2.47%
06:16:05 fs/readfile-permission-enabled.js concurrent=1 len=1024 encoding='utf-8' duration=5                                              1.11 %       ±1.54%  ±2.05%  ±2.67%
06:16:05 fs/readfile-permission-enabled.js concurrent=1 len=16777216 encoding='' duration=5                                              34.75 %      ±36.94% ±49.36% ±64.68%
06:16:05 fs/readfile-permission-enabled.js concurrent=1 len=16777216 encoding='utf-8' duration=5                                         -0.32 %       ±0.76%  ±1.01%  ±1.32%
06:16:05 fs/readfile-permission-enabled.js concurrent=10 len=1024 encoding='' duration=5                                         ***     -1.37 %       ±0.73%  ±0.97%  ±1.26%
06:16:05 fs/readfile-permission-enabled.js concurrent=10 len=1024 encoding='utf-8' duration=5                                     **     -1.01 %       ±0.69%  ±0.92%  ±1.20%
06:16:05 fs/readfile-permission-enabled.js concurrent=10 len=16777216 encoding='' duration=5                                             -0.33 %       ±2.04%  ±2.71%  ±3.53%
06:16:05 fs/readfile-permission-enabled.js concurrent=10 len=16777216 encoding='utf-8' duration=5                                        -0.30 %       ±0.39%  ±0.52%  ±0.68%
06:16:05 fs/readfile-promises.js concurrent=1 len=1024 encoding='' duration=5                                                             0.04 %       ±0.58%  ±0.77%  ±1.01%
06:16:05 fs/readfile-promises.js concurrent=1 len=1024 encoding='utf-8' duration=5                                                       -0.08 %       ±0.57%  ±0.75%  ±0.98%
06:16:05 fs/readfile-promises.js concurrent=1 len=16777216 encoding='' duration=5                                                       -12.10 %      ±22.34% ±29.72% ±38.68%
06:16:05 fs/readfile-promises.js concurrent=1 len=16777216 encoding='utf-8' duration=5                                                    0.26 %       ±0.26%  ±0.34%  ±0.45%
06:16:05 fs/readfile-promises.js concurrent=1 len=33554432 encoding='' duration=5                                                        -0.14 %       ±0.33%  ±0.44%  ±0.57%
06:16:05 fs/readfile-promises.js concurrent=1 len=33554432 encoding='utf-8' duration=5                                                    0.15 %       ±0.28%  ±0.37%  ±0.48%
06:16:05 fs/readfile-promises.js concurrent=1 len=4194304 encoding='' duration=5                                                         28.94 %      ±36.95% ±49.22% ±64.17%
06:16:05 fs/readfile-promises.js concurrent=1 len=4194304 encoding='utf-8' duration=5                                                    -0.33 %       ±0.51%  ±0.68%  ±0.90%
06:16:05 fs/readfile-promises.js concurrent=1 len=524288 encoding='' duration=5                                                           1.46 %       ±5.82%  ±7.75% ±10.09%
06:16:05 fs/readfile-promises.js concurrent=1 len=524288 encoding='utf-8' duration=5                                                     -0.31 %       ±0.39%  ±0.51%  ±0.67%
06:16:05 fs/readfile-promises.js concurrent=1 len=8388608 encoding='' duration=5                                                        -17.26 %      ±24.75% ±32.97% ±43.01%
06:16:05 fs/readfile-promises.js concurrent=1 len=8388608 encoding='utf-8' duration=5                                                     0.10 %       ±0.18%  ±0.24%  ±0.31%
06:16:05 fs/readfile-promises.js concurrent=10 len=1024 encoding='' duration=5                                                            0.34 %       ±1.98%  ±2.64%  ±3.44%
06:16:05 fs/readfile-promises.js concurrent=10 len=1024 encoding='utf-8' duration=5                                                      -1.29 %       ±2.06%  ±2.74%  ±3.58%
06:16:05 fs/readfile-promises.js concurrent=10 len=16777216 encoding='' duration=5                                                       -0.02 %       ±1.07%  ±1.42%  ±1.85%
06:16:05 fs/readfile-promises.js concurrent=10 len=16777216 encoding='utf-8' duration=5                                                  -0.03 %       ±0.30%  ±0.40%  ±0.53%
06:16:05 fs/readfile-promises.js concurrent=10 len=33554432 encoding='' duration=5                                                        0.60 %       ±1.45%  ±1.93%  ±2.52%
06:16:05 fs/readfile-promises.js concurrent=10 len=33554432 encoding='utf-8' duration=5                                                   0.02 %       ±0.19%  ±0.26%  ±0.34%
06:16:05 fs/readfile-promises.js concurrent=10 len=4194304 encoding='' duration=5                                                        -0.88 %       ±2.19%  ±2.92%  ±3.81%
06:16:05 fs/readfile-promises.js concurrent=10 len=4194304 encoding='utf-8' duration=5                                                    0.02 %       ±0.43%  ±0.58%  ±0.75%
06:16:05 fs/readfile-promises.js concurrent=10 len=524288 encoding='' duration=5                                                          0.30 %       ±5.54%  ±7.37%  ±9.59%
06:16:05 fs/readfile-promises.js concurrent=10 len=524288 encoding='utf-8' duration=5                                                     0.00 %       ±0.45%  ±0.60%  ±0.78%
06:16:05 fs/readfile-promises.js concurrent=10 len=8388608 encoding='' duration=5                                                         0.79 %       ±1.06%  ±1.41%  ±1.84%
06:16:05 fs/readfile-promises.js concurrent=10 len=8388608 encoding='utf-8' duration=5                                                    0.20 %       ±0.27%  ±0.36%  ±0.47%
06:16:05 fs/readfile.js concurrent=1 len=1024 encoding='' duration=5                                                                      0.09 %       ±1.46%  ±1.94%  ±2.52%
06:16:05 fs/readfile.js concurrent=1 len=1024 encoding='utf-8' duration=5                                                                 0.04 %       ±1.75%  ±2.33%  ±3.03%
06:16:05 fs/readfile.js concurrent=1 len=16777216 encoding='' duration=5                                                                  8.48 %      ±30.41% ±40.47% ±52.68%
06:16:05 fs/readfile.js concurrent=1 len=16777216 encoding='utf-8' duration=5                                                      *     -0.41 %       ±0.36%  ±0.48%  ±0.63%
06:16:05 fs/readfile.js concurrent=10 len=1024 encoding='' duration=5                                                             **     -0.91 %       ±0.64%  ±0.85%  ±1.10%
06:16:05 fs/readfile.js concurrent=10 len=1024 encoding='utf-8' duration=5                                                               -0.64 %       ±0.76%  ±1.01%  ±1.32%
06:16:05 fs/readfile.js concurrent=10 len=16777216 encoding='' duration=5                                                                -0.12 %       ±2.09%  ±2.79%  ±3.63%
06:16:05 fs/readfile.js concurrent=10 len=16777216 encoding='utf-8' duration=5                                                           -0.23 %       ±0.40%  ±0.53%  ±0.69%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='false' path='existing' encoding='undefined'                                        0.37 %       ±1.39%  ±1.85%  ±2.42%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='false' path='existing' encoding='utf8'                                            -0.35 %       ±1.97%  ±2.62%  ±3.41%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='false' path='non-existing' encoding='undefined'                                   -1.29 %       ±1.52%  ±2.02%  ±2.63%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='false' path='non-existing' encoding='utf8'                                         0.77 %       ±1.53%  ±2.03%  ±2.65%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='true' path='existing' encoding='undefined'                                         2.91 %       ±3.46%  ±4.60%  ±5.99%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='true' path='existing' encoding='utf8'                                     ***      8.70 %       ±2.77%  ±3.69%  ±4.80%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='true' path='non-existing' encoding='undefined'                                    -1.85 %       ±2.30%  ±3.07%  ±4.00%
06:16:05 fs/readFileSync.js n=10000 hasFileDescriptor='true' path='non-existing' encoding='utf8'                                         -0.24 %       ±1.38%  ±1.84%  ±2.39%
06:16:05 fs/write-stream-throughput.js size=1024 encodingType='asc' dur=5                                                          *     12.72 %      ±10.51% ±14.00% ±18.24%
06:16:05 fs/write-stream-throughput.js size=1024 encodingType='buf' dur=5                                                          *     11.91 %      ±10.20% ±13.57% ±17.66%
06:16:05 fs/write-stream-throughput.js size=1024 encodingType='utf' dur=5                                                        ***      4.58 %       ±0.58%  ±0.77%  ±1.01%
06:16:05 fs/write-stream-throughput.js size=1048576 encodingType='asc' dur=5                                                             -2.23 %      ±14.99% ±19.98% ±26.05%
06:16:05 fs/write-stream-throughput.js size=1048576 encodingType='buf' dur=5                                                             14.58 %      ±20.95% ±27.88% ±36.29%
06:16:05 fs/write-stream-throughput.js size=1048576 encodingType='utf' dur=5                                                             -0.18 %       ±0.70%  ±0.93%  ±1.21%
06:16:05 fs/write-stream-throughput.js size=2 encodingType='asc' dur=5                                                           ***      1.55 %       ±0.66%  ±0.88%  ±1.15%
06:16:05 fs/write-stream-throughput.js size=2 encodingType='buf' dur=5                                                           ***      1.41 %       ±0.31%  ±0.42%  ±0.54%
06:16:05 fs/write-stream-throughput.js size=2 encodingType='utf' dur=5                                                             *     -0.84 %       ±0.63%  ±0.84%  ±1.10%
06:16:05 fs/write-stream-throughput.js size=65535 encodingType='asc' dur=5                                                               -0.22 %       ±7.24%  ±9.63% ±12.55%
06:16:05 fs/write-stream-throughput.js size=65535 encodingType='buf' dur=5                                                               -4.28 %       ±4.31%  ±5.75%  ±7.53%
06:16:05 fs/write-stream-throughput.js size=65535 encodingType='utf' dur=5                                                         *      1.07 %       ±0.85%  ±1.13%  ±1.47%
06:16:05 fs/writefile-promises.js concurrent=1 size=1024 encodingType='asc' duration=5                                                   -0.30 %       ±1.03%  ±1.37%  ±1.78%
06:16:05 fs/writefile-promises.js concurrent=1 size=1024 encodingType='buf' duration=5                                                    0.76 %       ±1.49%  ±1.98%  ±2.58%
06:16:05 fs/writefile-promises.js concurrent=1 size=1024 encodingType='utf' duration=5                                            **      1.55 %       ±1.02%  ±1.36%  ±1.77%
06:16:05 fs/writefile-promises.js concurrent=1 size=1048576 encodingType='asc' duration=5                                                 1.26 %      ±33.68% ±44.82% ±58.37%
06:16:05 fs/writefile-promises.js concurrent=1 size=1048576 encodingType='buf' duration=5                                               -17.75 %      ±17.99% ±23.94% ±31.17%
06:16:05 fs/writefile-promises.js concurrent=1 size=1048576 encodingType='utf' duration=5                                                -0.18 %       ±1.57%  ±2.09%  ±2.74%
06:16:05 fs/writefile-promises.js concurrent=1 size=2 encodingType='asc' duration=5                                                       0.76 %       ±1.39%  ±1.85%  ±2.40%
06:16:05 fs/writefile-promises.js concurrent=1 size=2 encodingType='buf' duration=5                                                      -0.29 %       ±1.47%  ±1.95%  ±2.54%
06:16:05 fs/writefile-promises.js concurrent=1 size=2 encodingType='utf' duration=5                                                      -0.32 %       ±1.20%  ±1.60%  ±2.08%
06:16:05 fs/writefile-promises.js concurrent=1 size=65535 encodingType='asc' duration=5                                                  -0.74 %      ±18.20% ±24.23% ±31.55%
06:16:05 fs/writefile-promises.js concurrent=1 size=65535 encodingType='buf' duration=5                                                  13.75 %      ±15.83% ±21.11% ±27.56%
06:16:05 fs/writefile-promises.js concurrent=1 size=65535 encodingType='utf' duration=5                                                   0.09 %       ±1.41%  ±1.87%  ±2.44%
06:16:05 fs/writefile-promises.js concurrent=10 size=1024 encodingType='asc' duration=5                                                   0.37 %       ±1.06%  ±1.41%  ±1.84%
06:16:05 fs/writefile-promises.js concurrent=10 size=1024 encodingType='buf' duration=5                                                  -0.57 %       ±1.51%  ±2.01%  ±2.62%
06:16:05 fs/writefile-promises.js concurrent=10 size=1024 encodingType='utf' duration=5                                                   0.99 %       ±1.26%  ±1.68%  ±2.19%
06:16:05 fs/writefile-promises.js concurrent=10 size=1048576 encodingType='asc' duration=5                                               -0.61 %       ±1.87%  ±2.49%  ±3.25%
06:16:05 fs/writefile-promises.js concurrent=10 size=1048576 encodingType='buf' duration=5                                                1.08 %       ±2.48%  ±3.30%  ±4.30%
06:16:05 fs/writefile-promises.js concurrent=10 size=1048576 encodingType='utf' duration=5                                               -0.81 %       ±1.65%  ±2.20%  ±2.86%
06:16:05 fs/writefile-promises.js concurrent=10 size=2 encodingType='asc' duration=5                                                      0.36 %       ±1.12%  ±1.49%  ±1.94%
06:16:05 fs/writefile-promises.js concurrent=10 size=2 encodingType='buf' duration=5                                                      0.51 %       ±1.04%  ±1.38%  ±1.80%
06:16:05 fs/writefile-promises.js concurrent=10 size=2 encodingType='utf' duration=5                                                      0.46 %       ±1.52%  ±2.02%  ±2.64%
06:16:05 fs/writefile-promises.js concurrent=10 size=65535 encodingType='asc' duration=5                                                 -0.56 %       ±1.39%  ±1.85%  ±2.41%
06:16:05 fs/writefile-promises.js concurrent=10 size=65535 encodingType='buf' duration=5                                                 -1.47 %       ±1.63%  ±2.18%  ±2.86%
06:16:05 fs/writefile-promises.js concurrent=10 size=65535 encodingType='utf' duration=5                                                  0.39 %       ±1.55%  ±2.07%  ±2.69%
06:16:05 
06:16:05 Be aware that when doing many comparisons the risk of a false-positive
06:16:05 result increases. In this case, there are 215 comparisons, you can thus
06:16:05 expect the following amount of false-positive results:
06:16:05   10.75 false positives, when considering a   5% risk acceptance (*, **, ***),
06:16:05   2.15 false positives, when considering a   1% risk acceptance (**, ***),
06:16:05   0.21 false positives, when considering a 0.1% risk acceptance (***)
06:16:05 ++ mv output280624-024304.csv /w/bnch-comp
06:16:06 Collecting metadata...
06:16:06 Metadata collection done.
06:16:06 Notifying upstream projects of job completion
06:16:06 Finished: SUCCESS
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jul 3, 2024
Copy link
Contributor

github-actions bot commented Jul 3, 2024

Failed to start CI
   ⚠  Something was pushed to the Pull Request branch since the last approving review.
   ✘  Refusing to run CI on potentially unsafe PR
https://github.com/nodejs/node/actions/runs/9784060111
@github-actions github-actions bot added the request-ci-failed An error occurred while starting CI via request-ci label, and manual interventon is needed. label Jul 3, 2024
@anonrig anonrig requested review from jasnell and lemire July 3, 2024 21:33
@anonrig anonrig added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed An error occurred while starting CI via request-ci label, and manual interventon is needed. labels Jul 4, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jul 4, 2024
@anonrig anonrig force-pushed the improve-rmSync-performance branch from 39e8db3 to 5c1f6ed Compare July 11, 2024 18:46
@anonrig anonrig force-pushed the improve-rmSync-performance branch from 5c1f6ed to 8c8e277 Compare July 16, 2024 19:49
@anonrig
Copy link
Member Author

anonrig commented Jul 17, 2024

cc @nodejs/cpp-reviewers can you review?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.
5 participants