[gs-bugs] [Bug 689859] Performance comparison versions 7.07 and 8.62 on HP-UX ia64

bugzilla-daemon at ghostscript.com bugzilla-daemon at ghostscript.com
Fri Aug 6 14:50:30 UTC 2010


http://bugs.ghostscript.com/show_bug.cgi?id=689859

Ken Sharp <ken.sharp at artifex.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #10 from Ken Sharp <ken.sharp at artifex.com> 2010-08-06 14:50:23 UTC ---
What seems to be happening is that pdfwrite is making a copy of the font(s) in
the PostScript file, in order to create a subset (possibly other reasons too).


In order to do this it copies glyphs from the *current* font into the copy as
required. However, before doing so it needs to see if the fonts are the same.
Using the font name is not sufficiently unique, its possible to create a font
called Helvetica, use it, then create a different font called Helvetica and use
that.

So pdfwrite makes some quite extensive checks to see if the current font is the
same as the one it started copying earlier. If not it will manufacture a new
copy, otherwise it simply copies the glyphs if required.

The only way I can think of to cache as Alex suggested in comment #5 would be
to somehow hash the various tables whenever we first access a font, and then
compare hashes. Quite a big job. We can't even check to see if the glyphs
already exist, in case the font changed. 

Possibly we could use the XUID (but that isn't always unique!), or perhaps
there is some other guaranteed unique signature we could store and compare.
I'll try and check that as it would be much quicker to compare and should give
a useful performance improvement on all jobs containing text if it can be done.

-- 
Configure bugmail: http://bugs.ghostscript.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the gs-bugs mailing list