Deflate: And then there is Chipz

| 1 TrackBack

So it seems the best way of finding out about lisp packages is releasing a similar package yourself ;): Right on the foot of releasing Deflate, I get to notice Chipz, a similar, but more capable package by Nathan Froyd, the release of which in early 2008 seems to have slipped my notice completely. So anyone who is interested in RFC 1951 Deflate (or even BZIP2 decompression), please have a look at Chipz as well, which is likely to better fit your needs!

Since I can’t let any benchmarking opportunity go to waste, here’s an overview of performance when decompressing a 18.6MB gzip-compressed file into 81.9 MB uncompressed form with Deflate 1.0.0, Chipz 0.7.3 and inflate.cl from Franz, version 2.6, on various CL implementations, and gzip 1.3.10:

Common Lisp
Implementation
Library / Program
Deflate 1.0.0 Chipz 0.7.3 inflate.cl 2.6
(w/o CRC32)
Deflate 1.0.0
w/o CRC32
Chipz 0.7.3
w/o CRC32
gzip 1.3.10
SBCL 1.0.29 x86 (32bit) 7.42s 7.65s 17.85s 6.56s 6.99s 5.03s
SBCL 1.0.29 x64 (64bit) 6.99s 6.41s 18.35s 6.37s 5.92s
LispWorks 5.1.2 Prof. 32bit 34.78s 197.50s 32.68s 34.02s 56.79s
Clozure CL 1.3 32bit 44.89s 48.77s 13.53s 16.07s 17.71s
Clozure CL 1.3 64bit 18.06s 16.87s 13.67s 16.87s 15.40s

Since CRC-32 calculations can overshadow deflate performance itself on some implementations, and since inflate.cl does not perform CRC-32 checksum calculations at all, the columns showing Deflate and Chipz without CRC-32 calculations might be more indicative of actual deflate performance.

Note that this was all done on a MacBook Air 1.8GHz Core2 Duo under Mac OS X 10.5.7, timing was done as an average of 3 runs each.

What can be learned from the results is that 64bit implementations with their bigger fixnum range help quite a bit in performing 32bit algorithms (like CRC-32) well even without extensive/effective declaration fine-tuning or special 32bit arithmetics operators.

1 TrackBack

TrackBack URL: http://mt.pierre-mai.de/mt/mt-tb.cgi/22

I have finally gotten around to separating out and cleaning up the Deflate (RFC 1951) decompression routines we have been using in-house for quite some time, and released them under an X-style free license (see links below), for those who... Read More

About this Entry

This page contains a single entry by Pierre R. Mai published on June 5, 2009 12:50 AM.

(Yet Another) Deflate Decompression Implementation in CL was the previous entry in this blog.

WWDC 2009 Predictions is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

Recent Assets

  • Picture of PRM

Recent Activity

2011-02-17

  • Pierre tweeted, "Service-oriented Architecture (n.): What you do if you have no idea what service is, nor the any notion what software architecture is about."

2010-12-03

  • Pierre tweeted, "Again on the runway waiting for snow-delayed take-off. Quite the lifestyle..."

2010-11-29

  • Pierre tweeted, "The Future(tm): Uploading software releases and submitting policy input to the EU from a plane waiting 1h at the airport for its de-icing ,)"

2010-10-28

  • Pierre tweeted, "Achieved unbelievable win against Siedle, Siemens by connecting front gate intercom to PBX. Sad about the complexity involved though..."

2010-09-20

  • Pierre tweeted, "RT @jwz: Visual Transistor-level Simulation of the 6502 - in Javascript. http://j.mp/bWHK5F"

2010-09-17

  • Pierre tweeted, "Thanks to @mikeysan I'm playing with say -v "Cellos" on my Mac instead of configuring FreeBSD servers... say -v "Cellos" 'Thanks, mikeysan!'"

2010-08-04

  • Pierre tweeted, "Resurrecting my old Apple //e (yet again) lead to switching power-supply debugging (shorted rectifier dual diode) and soldering fun."

2010-07-25

  • Pierre tweeted, "Star Trek/iPad nostalgia/futurology cross-over: Reading the ST:TNG Technical Manual on the iPad, downloaded directly from subspace..."

2010-06-23

2010-06-02

  • Pierre tweeted, "RT @HansHuebner: U.v.d.Leyen als Bundespräsidentin? Ist das Amt nicht schon beschädigt genug?"