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

Merged
merged 1 commit into from
Jul 18, 2024

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
@nodejs-github-bot
Copy link
Collaborator

@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 5c1f6ed to 8c8e277 Compare July 16, 2024 19:49
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@anonrig
Copy link
Member Author

anonrig commented Jul 17, 2024

cc @nodejs/cpp-reviewers can you review?

Copy link
Member

@benjamingr benjamingr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with green tests

@anonrig anonrig added the commit-queue Add this label to land a pull request using GitHub Actions. label Jul 18, 2024
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Jul 18, 2024
@nodejs-github-bot nodejs-github-bot merged commit 7168295 into nodejs:main Jul 18, 2024
53 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in 7168295

@aduh95
Copy link
Contributor

aduh95 commented Jul 21, 2024

Marking it as dont-land because of #53962 (comment)

@aduh95 aduh95 added dont-land-on-v18.x PRs that should not land on the v18.x-staging branch and should not be released in v18.x. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. labels Jul 21, 2024
@anonrig
Copy link
Member Author

anonrig commented Jul 21, 2024

@richardlau @aduh95 any idea why the tests are flaky?

@aduh95
Copy link
Contributor

aduh95 commented Jul 21, 2024

@anonrig the flakiness of the test (and its root cause) is beside the point, the fact that it break something is our CI means it likely going to break our users and therefore should not land on release lines. In an ideal world, when the CI reports the same test failing 6 times in the same PR but is passing in others, that PR would not land until the flakiness is addressed.

@anonrig
Copy link
Member Author

anonrig commented Jul 21, 2024

@anonrig the flakiness of the test (and its root cause) is beside the point, the fact that it break something is our CI means it likely going to break our users and therefore should not land on release lines. In an ideal world, when the CI reports the same test failing 6 times in the same PR but is passing in others, that PR would not land until the flakiness is addressed.

Yes, I agree. I'm trying to understand how this change caused this regression.

@targos
Copy link
Member

targos commented Jul 28, 2024

Is this safe to land on v22.x with cf2bce6 ?

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++. dont-land-on-v18.x PRs that should not land on the v18.x-staging branch and should not be released in v18.x. dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants