[gs-cvs] rev 8016 - trunk/gs/src

ray at ghostscript.com ray at ghostscript.com
Tue May 29 23:05:43 PDT 2007


Author: ray
Date: 2007-05-29 23:05:43 -0700 (Tue, 29 May 2007)
New Revision: 8016

Modified:
   trunk/gs/src/gxclmem.c
Log:
Change built-in compression threshold for memory based clist to
improve performance.

DETAILS:

The (example) compression threshold used with BAND_LIST_STORAGE=memory
is much to small to represent current embedded devices (where we expect
to not have a disk). On one customer's (#951) performance test files,
this change shows an overall 9.2% performance increase, ranging as high
as 20% on one file. For this test suite, even 22M is enough to avoid
compression.

The intent is that the compression threshold be a dynamic value that
uses current "real time" memory available in the printer rather than
some arbitrary fixed value. If the clist writer logic waits for all
potential renderer/reader tasks to stop and free their clist RAM,
then the need to compress becomes even less likely.

EXPECTED DIFFERENCES:

None (currently no testing for performance and clist performance).



Modified: trunk/gs/src/gxclmem.c
===================================================================
--- trunk/gs/src/gxclmem.c	2007-05-28 18:47:29 UTC (rev 8015)
+++ trunk/gs/src/gxclmem.c	2007-05-30 06:05:43 UTC (rev 8016)
@@ -131,7 +131,7 @@
    least as large as the fixed overhead of the compressor plus the
    decompressor, plus the expected compressed size of a block that size.
  */
-private const long COMPRESSION_THRESHOLD = 300000;
+private const long COMPRESSION_THRESHOLD = 32000000;
 
 #define NEED_TO_COMPRESS(f)\
   ((f)->ok_to_compress && (f)->total_space > COMPRESSION_THRESHOLD)



More information about the gs-cvs mailing list