fs: move `rmSync` implementation to c++
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/
CI: https://ci.nodejs.org/job/node-test-pull-request/60002/
CI: https://ci.nodejs.org/job/node-test-pull-request/60003/
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
Failed to start CI
⚠ Something was pushed to the Pull Request branch since the last approving review. ✘ Refusing to run CI on potentially unsafe PRhttps://github.com/nodejs/node/actions/runs/9784060111
CI: https://ci.nodejs.org/job/node-test-pull-request/60066/
CI: https://ci.nodejs.org/job/node-test-pull-request/60174/
CI: https://ci.nodejs.org/job/node-test-pull-request/60220/
CI: https://ci.nodejs.org/job/node-test-pull-request/60255/
CI: https://ci.nodejs.org/job/node-test-pull-request/60265/
CI: https://ci.nodejs.org/job/node-test-pull-request/60362/
CI: https://ci.nodejs.org/job/node-test-pull-request/60363/
CI: https://ci.nodejs.org/job/node-test-pull-request/60374/
CI: https://ci.nodejs.org/job/node-test-pull-request/60376/
cc @nodejs/cpp-reviewers can you review?
Landed in 7168295e7a94e6cfef69e43d26d7d5b57d3e1cf9
Marking it as dont-land because of https://github.com/nodejs/node/issues/53962#issuecomment-2240820724
@richardlau @aduh95 any idea why the tests are flaky?
@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 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.
Is this safe to land on v22.x with cf2bce63862d995d238802ff4a7a24966361360a ?