Skip to content

chore(examples): refresh the benchmark snapshot the decks draw from - #511

Merged
DemchaAV merged 1 commit into
developfrom
chore/refresh-benchmark-snapshot
Aug 4, 2026
Merged

chore(examples): refresh the benchmark snapshot the decks draw from#511
DemchaAV merged 1 commit into
developfrom
chore/refresh-benchmark-snapshot

Conversation

@DemchaAV

@DemchaAV DemchaAV commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Why

The snapshot both decks and the Maven banner read was a single run from 26 July. This
replaces it with a median of five runs taken today.

What

One data file, and the four committed previews it moves: engine-deck.pdf,
engine-deck-v2.pdf, maven-banner.pdf and maven-banner.pptx. No prose changed
the pages draw their tables, charts and run metadata from the file, which is what that
design is for.

The numbers still say what the pages say

Checked rather than assumed, because a refresh that quietly invalidates a claim is worse
than a stale one:

Claim on the page Fresh median
"the time lead over iText widens" 2.44x at 40 rows → 3.35x at 200 → 4.42x at 1000
"JasperReports closes to roughly the same render time at 1000 rows" 1.02x — 42.8 ms vs 43.7 ms
"markedly lighter on memory than both throughout" 3.0–3.5x vs iText, 2.5–2.7x vs Jasper

All three hold. Every engine is also ~1.5x faster than in July while peak heap moved
under 1% — GraphCompose cannot speed up iText or JasperReports, so that is the machine,
not the code. It is exactly why both pages tell the reader to read the ratios rather than
the milliseconds.

Tests

./mvnw -B -ntp clean verifyBUILD SUCCESS. CommittedAssetDriftTest named the four
previews that moved before I touched them, and passes after.

One thing worth recording: the layout baselines do not move on a data refresh. I
expected them to and staged them; git showed the files byte-identical. A ChartNode's box
is sized by its spec — aspectRatio against the available width — so the values inside
change what is painted without moving a node. The baseline holds CmpCharts, the chart's
container, and none of the bars, ticks or labels. So a future snapshot refresh is this
file plus the renders, and nothing else.

The committed snapshot was a single run from 26 July. This is a median of five,
taken today, and the decks read it rather than restating it — so refreshing the
numbers is this file plus the renders it moves, and no prose changed.

The shape is unchanged, which is the point of checking rather than assuming: the
time lead over iText widens with size (2.44x at 40 rows, 3.35x at 200, 4.42x at
1000), JasperReports reaches parity at the top size (1.02x), and GraphCompose
stays 2.5-2.7x lighter than it on peak heap throughout. Every sentence the decks
already carried about those trends is still true of the new figures.

All three engines are also about 1.5x faster than in July while peak heap moved
under 1%. GraphCompose cannot speed up iText or JasperReports, so that is the
machine rather than the code, and it is the reason the pages tell readers to
read the ratios rather than the milliseconds.

Four committed previews move with it: both decks, the Maven banner and its pptx.
The layout baselines do not, and that is worth knowing rather than rediscovering
— a ChartNode's box is sized by its spec, so the values inside it change what is
painted without moving a single node. Running the snapshot update after a data
refresh rewrites the files byte for byte.
@DemchaAV
DemchaAV merged commit fcadd17 into develop Aug 4, 2026
10 checks passed
@DemchaAV
DemchaAV deleted the chore/refresh-benchmark-snapshot branch August 4, 2026 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant