Add benchmarking scripts
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 186
- Forks
- 70
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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)
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Durchsicht der benchmarkähnlichen Fälle in test/generate.test.js, der vorgeschlagenen bench/-Konvention und der bestehenden .travis.yml-Konfiguration. Definiere stabile lokale Eingaben, konfigurierbare Nebenläufigkeit, gemeinsam nutzbare Ausgaben und eine CI-Ausführung, die auf Regressionen prüft, ohne die Ausführungszeit zu bewerten; abgeschlossen ist die Aufgabe, wenn die Skripte Performance- oder Speicherprüfungen ohne Netzwerk-I/O abdecken.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- ci-cd, performance, tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100