Open kieran-ryan opened 4 months ago
Benchmarked the fast-glob globbing library used by the Language Server through the node-glob benchmark.
Negligible difference for synchronous operations and interestingly the existing pattern appears to be around 17% faster (0.069s -> 0.081s); which is fairly insubstantial and may be a favourable tradeoff for a simplified default configuration. Though present performance constraints (#152) must also be considered.
@kieran-ryan ➜ /workspaces/node-glob (main) $ npm run bench
> glob@10.3.15 prebench
> npm run prepare
> glob@10.3.15 prepare
> tshy
> glob@10.3.15 bench
> bash benchmark.sh
--- pattern: 'features/**/*{.js,.jsx,.php,.py,.rb,.rs,.ts,.tsx,_test.go,.java}' ---
[ 'features/**/*{.js,.jsx,.php,.py,.rb,.rs,.ts,.tsx,_test.go,.java}' ]
~~ sync ~~
node fast-glob sync 0m0.089s 0
node globby sync 0m0.090s 0
node current globSync mjs 0m0.068s 0
node current glob syncStream 0m0.067s 0
~~ async ~~
node fast-glob async 0m0.081s 0
node globby async 0m0.092s 0
node current glob async mjs 0m0.068s 0
node current glob stream 0m0.067s 0
--- pattern: 'features/**/*.js features/**/*.jsx features/**/*.php features/**/*.py features/**/*.rb features/**/*.rs features/**/*.ts features/**/*.tsx features/**/*_test.go features/**/*.java' ---
[ 'features/**/*.js', 'features/**/*.jsx', 'features/**/*.php', 'features/**/*.py', 'features/**/*.rb', 'features/**/*.rs', 'features/**/*.ts', 'features/**/*.tsx', 'features/**/*_test.go', 'features/**/*.java' ]
~~ sync ~~
node fast-glob sync 0m0.090s 0
node globby sync 0m0.090s 0
node current globSync mjs 0m0.063s 0
node current glob syncStream 0m0.081s 0
~~ async ~~
node fast-glob async 0m0.069s 0
node globby async 0m0.093s 0
node current glob async mjs 0m0.067s 0
node current glob stream 0m0.117s 0
🤔 What's changed?
⚡️ What's your motivation?
🏷️ What kind of change is this?
📋 Checklist: