node icon indicating copy to clipboard operation
node copied to clipboard

fs: move `rmSync` implementation to c++

Open anonrig opened this issue 1 year ago • 3 comments

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/

anonrig avatar Jun 28 '24 00:06 anonrig

CI: https://ci.nodejs.org/job/node-test-pull-request/60002/

nodejs-github-bot avatar Jun 28 '24 00:06 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60003/

nodejs-github-bot avatar Jun 28 '24 00:06 nodejs-github-bot

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

benjamingr avatar Jun 28 '24 19:06 benjamingr

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[bot] avatar Jul 03 '24 19:07 github-actions[bot]

CI: https://ci.nodejs.org/job/node-test-pull-request/60066/

nodejs-github-bot avatar Jul 04 '24 10:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60174/

nodejs-github-bot avatar Jul 08 '24 18:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60220/

nodejs-github-bot avatar Jul 10 '24 15:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60255/

nodejs-github-bot avatar Jul 11 '24 18:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60265/

nodejs-github-bot avatar Jul 11 '24 23:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60362/

nodejs-github-bot avatar Jul 16 '24 19:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60363/

nodejs-github-bot avatar Jul 16 '24 19:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60374/

nodejs-github-bot avatar Jul 17 '24 00:07 nodejs-github-bot

CI: https://ci.nodejs.org/job/node-test-pull-request/60376/

nodejs-github-bot avatar Jul 17 '24 01:07 nodejs-github-bot

cc @nodejs/cpp-reviewers can you review?

anonrig avatar Jul 17 '24 14:07 anonrig

Landed in 7168295e7a94e6cfef69e43d26d7d5b57d3e1cf9

nodejs-github-bot avatar Jul 18 '24 20:07 nodejs-github-bot

Marking it as dont-land because of https://github.com/nodejs/node/issues/53962#issuecomment-2240820724

aduh95 avatar Jul 21 '24 13:07 aduh95

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

anonrig avatar Jul 21 '24 15:07 anonrig

@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.

aduh95 avatar Jul 21 '24 16:07 aduh95

@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.

anonrig avatar Jul 21 '24 16:07 anonrig

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

targos avatar Jul 28 '24 08:07 targos