August 7, 2017
2 minute read
After many years frustrated with how slow Common Lisp's png-read library is, I decided to take an evening to try to optimize it. Here are the timing results of trying to parse a file from disk 1000 times with SBCL 1.3.19, for each of these sample images in PNGSuite.
Particularly noticeable are the RGB and RGBA variants, with an approximate 3x boost. I may continue to optimize more, but for a start I am definitely happier.
Update 2017-08-07: Changes have been merged upstream, so everyone can take advantage of the performance boost in the original version later this month when the latest Quicklisp dist is released.
Update 2017-08-24: I wrote a PNG parser completely from scratch, called pngload, that is even faster, and more featureful. Check it out here.