Benchmark PnP runtime overhead
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 8.1k
- Forks
- 1.3k
- PR merge metrics
- No merged PRs in 30d
Description
- I'd be willing to implement this feature
- This feature can already be implemented through a plugin
Describe the user story
I saw that the yarn pnp.js file extends some nodejs native functionality like require, path and fs functions
To prevent performance degradation we should make benchmark and stress tests that measure the runtime overhead, for example creating a bundle with webpack of a big project with at least 50 packages
Other performance degradations could be in glob searches
I am also scared that some of these functions reimplementations have time complexity that grows with the workspace packages you have, some of us have workspaces with 200 packages
Describe the solution you'd like
Implement a benchmark to measure the runtime overhead
Describe the drawbacks of your solution
Describe alternatives you've considered
Additional context
It is still not very clear to me why yarn reimplements fs, it would be cool to read more about it
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the generated pnp.js implementation around its require, path, and fs reimplementations, then examine the proposed webpack bundle and glob-search scenarios. Define benchmarks using a large project with at least 50 packages and a workspace with up to 200 packages; done means reporting runtime overhead and whether costs grow with workspace size.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nodejs, webpack
- Domain
- performance, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100