Skip to content

Add reproducible, qualified PDF renderer comparison - #37

Merged
krflol merged 1 commit into
masterfrom
bench/pdf-renderer-comparison
Oct 5, 2026
Merged

krflol merged 1 commit into
masterfrom
bench/pdf-renderer-comparison

Conversation

@krflol

@krflol krflol commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Developers evaluating Fullbleed need shared inputs and retained output checks before comparing renderer speed. Add an optional Linux harness for Fullbleed 2.5.6, WeasyPrint 70.0, and Playwright 1.63.0/Chromium, with the same three static HTML/CSS fixtures and explicit Inter font.

The harness separates fresh-process, warm-render, and sampled process-tree memory measurements; preserves every PDF and raw sample; validates content, record order, page geometry, embedded fonts, and text bounds with independent readers; and exercises deliberate rejection controls. A dedicated CI smoke run checks output qualification without enforcing latency thresholds. Comparison dependencies remain outside the engine package.

Validation: local qualification passed all nine renderer/fixture combinations (90 PDFs), and every representative page was visually inspected. The 100-row ledger has three pages in Fullbleed/WeasyPrint and four in Chromium; that difference is retained. Initial Inter contextual-hyphen extraction failures and a WSL PATH-related import delay are documented, with fixes applied equally across adapters before the measured run. The complete measured run qualified all 414 PDFs (315 timed samples plus warm-ups and memory passes), all four negative controls for every renderer passed, and all 22 representative page images exactly match the inspected qualification images. The dedicated Ubuntu comparison CI is green. The docs companion will publish both the measured archive and initial setup diagnostics, including the cases where Chromium was faster and WeasyPrint files were smaller.

@krflol
krflol merged commit 495850a into master Oct 5, 2026
13 checks passed
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