From 662f9bd38ed20b0a2b0e91d76ccb9a58b6112f10 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Tue, 4 Aug 2026 22:32:00 +0100 Subject: [PATCH] chore(examples): refresh the benchmark snapshot the decks draw from MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- assets/readme/examples/engine-deck-v2.pdf | Bin 36283 -> 36271 bytes assets/readme/examples/engine-deck.pdf | Bin 581406 -> 581373 bytes assets/readme/examples/maven-banner.pdf | Bin 16253 -> 16271 bytes assets/readme/examples/maven-banner.pptx | Bin 41009 -> 41029 bytes .../resources/benchmarks/comparative.json | 75 +++++++++--------- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/assets/readme/examples/engine-deck-v2.pdf b/assets/readme/examples/engine-deck-v2.pdf index 05e6b8f35716285b6b4b212465f951aecf513893..a182d5ffd80c42a5de6a98b5eb7c4beabc4f3fd3 100644 GIT binary patch delta 7277 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 SIY|^GQnI8xJR16%r2h}d4(_!8 diff --git a/assets/readme/examples/engine-deck.pdf b/assets/readme/examples/engine-deck.pdf index b9b26a73d6545062969eb34a5ffdeeb158948bcd..3ae5659b96fd9a406ea38289dde442623451395e 100644 GIT binary patch delta 11237 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 E2jN-a1poj5 diff --git a/assets/readme/examples/maven-banner.pdf b/assets/readme/examples/maven-banner.pdf index 119c40d15322e1bf87997bddf0b85b3462bb99c6..4a71b9ca4ade906a508924a9da2ac2d4cf5eed60 100644 GIT binary patch delta 4409 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 delta 4388 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 diff --git a/assets/readme/examples/maven-banner.pptx b/assets/readme/examples/maven-banner.pptx index 19d63c1a5fade4e33f25670125fe326520f4fcb8..869b32762e0d7da5d9148e46cf45cbf8de6c47bb 100644 GIT binary patch delta 7014 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 aEYRK@He~Vr&y5KZp*Xp0So=vx|NjC0R~pv< delta 6967 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