Skip to content

bench: order table rows by geometric mean across fixtures - #26

Closed
evoactivity wants to merge 1 commit into
mainfrom
bench/geomean-ordering
Closed

bench: order table rows by geometric mean across fixtures#26
evoactivity wants to merge 1 commit into
mainfrom
bench/geomean-ordering

Conversation

@evoactivity

Copy link
Copy Markdown
Owner

What

Orders the BENCHMARKS.md table rows by the geometric mean of op/s across each table's fixtures, and documents the rule in the methodology section.

Why geometric

An arithmetic mean would be dominated by the smallest, fastest fixture (DOM parsing's small column is 1.67M op/s against 19k for POM — the average would just re-sort by the small doc). The geometric mean weights every fixture equally, which is the standard way to average rates across workloads.

What moves

  • Streaming: @tuananh/sax-parser rises 6th → 2nd (geomean 16,609 vs easysax 16,268 — its EPG wins outweigh the RSS deficit); htmlparser2 and saxes swap
  • Tokenization: @tuananh/sax-parser rises 5th → 3rd
  • DOM parsing / serialization: already in geomean order, unchanged

Libraries that cannot parse a fixture rank by their per-fixture results rather than benefiting from the gap: tXml's geomean over its completed fixtures would place it above default-validation Eksml in serialization despite losing every fixture the two share, so it stays below.

Follow-up to #24 — this commit was pushed to that branch just after it merged.

Arithmetic averaging would be dominated by the smallest fixture, so
rows are ranked by geometric mean of op/s. Moves @tuananh/sax-parser
to 2nd in streaming and 3rd in tokenization on the strength of its
EPG results. Libraries that cannot parse a fixture rank by their
per-fixture results rather than benefiting from the gap.
@evoactivity evoactivity added the documentation Improvements or additions to documentation label Jul 22, 2026
@evoactivity

Copy link
Copy Markdown
Owner Author

Superseded by the per-fixture table restructure coming from bench/table-generator, which carries the geometric mean ordering in each section's overview table.

@evoactivity
evoactivity deleted the bench/geomean-ordering branch July 22, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant