[gs-bugs] [Bug 692611] ps2pdf is 40 X slower in gs 9 than gs 8

bugzilla-daemon at ghostscript.com bugzilla-daemon at ghostscript.com
Thu Oct 20 18:15:36 UTC 2011


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

--- Comment #7 from William Bader <williambader at hotmail.com> 2011-10-20 18:15:34 UTC ---
I built more versions of gs to narrow down the cause of the regression.

It was introduced in gs8.56.

gs8.54 processes the file in 3 minutes.
gs8.56 processes the file in 32 minutes.
(There was no gs8.55 release.)

(I rebuilt these with gcc-4.6.1, which generates code about 25% faster than the
gcc 3.3 or 3.4 that I originally used to build the gs8 releases that I timed in
the other comments where gs8.33 took 3.7 min and gs8.57 took 40 min.)

I compared the gs8.54 and 8.56 source.

The most likely cause is a redesign of color space objects as described in a
comment in gs8.56/src/gscspace.h:
 * Previous versions had a complicated lifecycle discipline for
 * colorspaces. All that is now replaced with a simple allocation and
 * reference counting discipline. All colorspace objects are allocated
 * on the heap and reference counted. References to colorspace objects
 * are pointers. There is no stack allocation, inline allocation inside
 * structs, or copying of contents.

A less likely cause is a change in the implementation of restore objects as
described in a comment in gs8.56/src/isave.h:
 * In PLRM3, Adobe did the reasonable thing and changed save objects to
 * composite.  However, this means that 'restore' must treat save objects on
 * the stack differently in LL2 vs. LL3 (yes, the Genoa LL2 and LL3 tests
 * require this!).  See zvmem.c:restore_check_stack.

William

-- 
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