Repository navigation
KillerPDF 1.9.0 "Overkill": development is open #357
Replies: 5 comments 2 replies
|
Good to see it open. I'm in, but not straight away. Matt |
|
Dependency removal is underway. When I am done, the engine itself will be able to do everything, and there will be a distinct barrier between the engine and the UI. I have a long weekend ahead of me to work uninterrupted now at least. |
|
I pushed a new testing milestone to Performance is getting close to 1.8.x, and engine-owned OCR is working, with Tesseract still available as a fallback. I still have tons of work to do on the engine, but it already supports tons of features that 1.8 doesn't so we can start thinking about how to wire it into the UI. |
|
Quick update on the new KillerPDF engine work: The 1.9 development branch now renders 614 of the 649 conformance files, with 35 intentionally skipped and zero failures. PDFium 1.8.5 renders 600, skips 41, and fails on 8. On the 600 files both engines render, KillerPDF.Engine currently takes 13.260 seconds versus PDFium at 11.707 seconds. That puts us about 13% behind PDFium, down from roughly 2.6x slower before this work. The new renderer includes anti-aliased rasterization, improved clipping and stroke handling, cached image conversion, and much broader recovery for malformed PDFs. The full engine suite currently passes 3,068 tests, with another 338 application tests passing. The current work is available on the |
|
Breakthrough: the new KillerPDF engine has reached rendering parity with PDFium in the real app benchmark! On the 600 conformance files both engines render, the latest engine took 12.20 seconds versus 12.28 seconds for the PDFium 1.8.5 build. That's across three alternating runs at 1024 pixels. Run-to-run noise is about 5%, so I'm calling this parity, not a speed win. The engine rendered 614 of the full 649 files, with 35 skipped and zero failures. PDFium rendered 600, skipped 41, and failed on 8. Whole-pass time was 24.21 seconds versus 23.21 seconds, about 4.3% longer while completing more files. The biggest gains came from caching text glyphs, faster shading calculations, cutting allocations, and improving damaged-file recovery. Document-open time on the shared files dropped from about 3.7 seconds to 1.5 seconds. The engine suite passes 3,113 tests. The other optimizations were pixel-identical on 190 sampled files; glyph caching can slightly change text-edge antialiasing. App testing has 333 passes and five tests still unverified because of a WPF FontCache exception in the test session. An older app payload failed similarly, but I haven't confirmed the cause yet. I've pushed the work to dev/1.9-overkill, including the benchmark checkpoint and raw results. This is still a development milestone. Next comes broader rendering validation and clearing the remaining test uncertainty. Parallel rendering is worth investigating separately, but I want to preserve rendering quality as performance improves. Troublesome PDFs and real-world rendering comparisons are especially welcome. |
Uh oh!
There was an error while loading. Please reload this page.
KillerPDF 1.9.0 is Overkill, and the development branch is now public.
I'm opening this branch to PRs for just about anything: new features, new tools, engine improvements, performance work, UI and workflow changes, bug fixes, translations, documentation, and experiments. If there's something you've wanted KillerPDF to do, this is a good time to get involved.
The first big change is already in: PdfPig has been removed. The KillerPDF.Engine now handles text and image placement extraction as well as document reading, editing, and writing. PDFium still handles rendering.
A few guidelines:
dev/1.9-overkillfor 1.9 PRs. Base your work on that branch.mainstays on the 1.8.x maintenance line.I'm deliberately leaving the scope broad while Overkill develops. Everything still gets reviewed, and not every idea will land in 1.9, but you don't need to limit yourself to small fixes or an existing checklist.
This is an active development branch, not a stable release. The plan is to build out and stabilize 1.9 before moving into the cross-platform 2.0 work.
The contribution guide has the build instructions and testing details. Feel free to use this discussion to pitch an idea, coordinate work, or ask where to start.
All reactions