Skip to content

`node:fs` error path performance improvements

Rodrigo Muino Tomonari requested to merge github/fork/anonrig/fs-improvements into main

Closes https://github.com/nodejs/node/pull/49863 Closes https://github.com/nodejs/node/pull/49750 Closes https://github.com/nodejs/node/pull/49748

Local benchmarks:

  • readlinkSync, linkSync, symlinkSync
fs/bench-linkSync.js n=1000 type='invalid'               ***     33.31 %       ±1.38% ±1.84%  ±2.40%
fs/bench-linkSync.js n=1000 type='valid'                         -1.06 %       ±3.29% ±4.40%  ±5.77%
fs/bench-readlinkSync.js n=1000 type='invalid'           ***     25.55 %       ±0.96% ±1.28%  ±1.66%
fs/bench-readlinkSync.js n=1000 type='valid'                      4.01 %       ±6.24% ±8.32% ±10.87%
fs/bench-symlinkSync.js n=1000 type='invalid'            ***     31.08 %       ±1.08% ±1.45%  ±1.90%
fs/bench-symlinkSync.js n=1000 type='valid'                       1.37 %       ±3.34% ±4.45%  ±5.79%
  • renameSync
fs/bench-renameSync.js n=2000 type='invalid'        ***     44.88 %       ±4.54% ±6.06% ±7.93%
fs/bench-renameSync.js n=2000 type='valid'                  -1.36 %       ±4.57% ±6.08% ±7.92%
  • chownSync & lchownSync
fs/bench-chownSync.js n=10000 method='chownSync' type='existing'              **      3.08 %       ±1.93% ±2.58% ±3.39%
fs/bench-chownSync.js n=10000 method='chownSync' type='non-existing'         ***     90.16 %       ±1.57% ±2.09% ±2.72%
fs/bench-chownSync.js n=10000 method='lchownSync' type='existing'                    -0.03 %       ±1.99% ±2.65% ±3.45%
fs/bench-chownSync.js n=10000 method='lchownSync' type='non-existing'        ***     87.50 %       ±1.75% ±2.33% ±3.06%
  • mkdtempSync
fs/bench-mkdtempSync.js n=1000 type='invalid'        ***     54.66 %       ±1.72% ±2.30% ±3.01%
fs/bench-mkdtempSync.js n=1000 type='valid'                  -1.20 %       ±3.58% ±4.77% ±6.20%

Ref: https://github.com/nodejs/performance/issues/106

cc @nodejs/performance

Merge request reports

Loading