perf: Integrate unit and spec benchmarking in js-libp2p CI
Open
Nobody has claimed this yet.
effort/days
exp/expert
help wanted
topic/perf
- Dominant language
- TypeScript
- Stars
- 2.6k
- Forks
- 546
- Avg merge
- 8h 18m
- Merged PRs (30d)
- 16
Description
discussed in https://pl-strflt.notion.site/js-libp2p-perf-benchmarking-f7c42f96cbd44799a321347f6c15c8d4?pvs=4
Goals
- We would like to be able to benchmark js-libp2p across releases and compare performance, particularly across different permutations in the stack.
- Testing different transports against each other performance wise.
- We are currently having an issue with performance with [Yamux performance](https://github.com/ChainSafe/js-libp2p-yamux/issues/42) and we would like to be able to nail down why there are such drastic differences.
- We have issues [sending large files](https://github.com/libp2p/js-libp2p/actions/runs/6265587906/job/17014869561?pr=2048#step:5:2415) and whilst this is cause by separate issue it would be beneficial to measure file transfer performance and have that running on CI.
### Tasks
- [ ] https://github.com/libp2p/js-libp2p/issues/1964
- [ ] https://github.com/libp2p/js-libp2p/issues/2120
- [ ] https://github.com/libp2p/test-plans/issues/307
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 with the linked Notion discussion and the task-list issues 1964, 2120, and test-plans#307 to establish the intended benchmark scope. Done should mean js-libp2p CI measures unit and spec performance across releases and stack permutations, including transport comparisons and file-transfer performance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- ci-cd, networking, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100