cucumber / vscode

Official Visual Studio Code Extension for Cucumber
MIT License
65 stars 16 forks source link

Optimise default glue paths in settings #232

Open kieran-ryan opened 4 months ago

kieran-ryan commented 4 months ago

🤔 What's changed?

⚡️ What's your motivation?

🏷️ What kind of change is this?

📋 Checklist:

kieran-ryan commented 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