all devices regression report - 2018-11-05-06:59:21 - 85e6fd4df9bb51d5c36e7811a2bac4c52898b08c
[email protected] Mon, 5 Nov 2018 06:59:21 -0800 (PST)
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20181105145921.E8DC02040500@i7> |
Differences in all devices errors using gs/examples files Previous Revision: b4f29851a33ff04979bb2eb3a32ab62000c6f19c Current Revision: 85e6fd4df9bb51d5c36e7811a2bac4c52898b08c commit 85e6fd4df9bb51d5c36e7811a2bac4c52898b08c Author: Ken Sharp <[email protected]> AuthorDate: Mon Nov 5 14:02:51 2018 +0000 CommitDate: Mon Nov 5 14:02:51 2018 +0000 pdfwrite - add a performance enhancing heuristic for text processing Bug #700124 "pdfwrite device over 800% performance loss between 9.25 and 9.23" This is a heuristic attempt to resolve the reduction in performance. The code originally used the FontBBox to try and determine if a glven glyph was completely clipped out, or was at least partially drawn. For efficiency reasons we don't include glyphs which are clipper out in the pdfwrite output, reducing the PDF size. However in bug #699454 and bug #699571 we saw EPS files produced from OneVision EPSExport which include fonts with a wildly inaccurate FontBBox. Two commits; 6a4202691c4317a698fa23c5309ad8974fe2b003 and 3bf4f3ea45f0022b6cd36415f095f1bfc119fb73 resolved this. The initial fix considered the advance width in addition to the glyph width, but this proved to be insufficient with the second file which drew the same glyph multiple times, with an advance width of 0. The commit logs note that the only solution is to determine the glyph width accurately, which means processing the glyph program for each glyph, which has performance implications (ie its slower). In order to try and alleviate this where possible, this commit looks at the number of integer co-ordinates in font space by scaling the FontBBox by the FontMatrix. If the resulting design space is small (an arbitrary value of 0.1, 1e 100x100 was chosen as 'small') then we do not use the FontBBox, but instead use the slower accurate method. This may need some adjustment, and its entirely possible that it may, in the long term, prove unreliable and have to be removed. devices/vector/gdevpdte.c new errors: errors that went away: errors that are not whitelisted: === ghostpdl/examples/escher.ps === pngalpha ===