Add benchmarking scripts
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- javascript
- Domain
- ci-cd, performance, tooling
Research direction
Start by reviewing the benchmark-like cases in test/generate.test.js, the proposed bench/ convention, and the existing .travis.yml configuration. Define stable local inputs, configurable concurrency, shareable output, and CI execution that checks for breakage without evaluating timing; done means the scripts cover performance or memory checks without network I/O.
Written by the indexing model from the issue text.
Description
For many types of changes (such as #76 and #78, recently) it would be great to have a set of benchmarking scripts for assessing performance impacts.
spritezero does currently have some unit-tests that function sort of like benchmarking (see here) but it is not ideal to have these mixed in with unit tests.
Benchmarking scripts guidelines:
- Should live in the
bench/directory, following convention of other repos (ex https://github.com/mourner/rbush/tree/master/bench). - Can be run locally to assess if changes to spritezero deps or code have an impact on performance or memory usage
- Should do no network, only local i/o
- Should be primarily designed to be run locally and used for collaborative testing
- Should nevertheless be run on CI (with explicit lines added to the .travis.yml to run them) to ensure they don't break (since they should not run as unit tests). But we should ignore their timing result on CI - the only purpose is to make sure they don't break under refactors.
- Should dump their output in an easy to share format that can be posted on tickets and referred back to
- Data input should be stable over time so their results can be compared across time with git bisect
- Should have configurable concurrency and should not default to using os.cpus() otherwise results will not be very comparable across machines.
(h/t @springmeyer for this list)
- Dominant language
- JavaScript
- Stars
- 186
- Forks
- 70
- PR merge metrics
- No merged PRs in 30d
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.
More from mapbox/spritezero
-
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
mapbox/spritezero#100 ·
-
Migrate to svgo 2.x Openjira-sync-complete
Difficulty 3/5 1-2 days Newbie friendliness 42/100
mapbox/spritezero#93 ·
-
estimate-2 groomed jira-sync-complete p3
Difficulty 1/5 Under an hour Newbie friendliness 45/100
mapbox/spritezero#88 · 1 comment · 4 reactions ·
-
estimate-2 groomed jira-sync-complete p3
Difficulty 4/5 3-5 days Newbie friendliness 25/100
mapbox/spritezero#84 · 7 comments · 4 reactions ·
-
estimate-2 groomed jira-sync-complete p3
Difficulty 4/5 3-5 days Newbie friendliness 20/100
mapbox/spritezero#82 · 3 reactions ·
All issues in mapbox/spritezero
Similar issues
-
bug confirmed issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
open-webui/open-webui#30750 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Mend: dependency security vulnerability untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 70/100