I did an interesting test using most of the high-speed compressors - I included 6pack, too. The test file is a big TAR-file (1.168.125.952 bytes). Its contents are:
-OpenOffice2
-Seamonkey
-Enwik8
-Gimp2
-SFC
-Abiword
-many files from UCLC
-...
The test was repeated 4 times for each compressor. The results include process and wall times. The test is performed on one hard disk with 16M cache. My system has 2G memory and is clocked at 3.4GHz.
As expected Thor e4 is best ratio-wise. A close second place goes to Slug 1.26 which is roughly 2.5 times faster than Thor e4. Thor e3 comes in third just in front of Tor -3. The other results are not very interesting and crowning the fastest compressor is odd because I did not include Quick1, Tor -1 and the likes.
Now, looking at the results, one can make an interesting observation. Assuming that Quick2's and Slug 11b's IO code is ok, the IO/walltime barrier must be at around 10s. Only Quick2, Slug 11b, Slug 126b and Thor e2/e3 come close to this limit. All other compressors seem to be lacking somewhere.
Let's use Filemon to take a closer look. Slug 126b reads/writes 64K blocks and Thor reads/writes 32K blocks. So, all of the IO of both tools is done on sector boundaries. Quick2 reads 32K blocks and writes blocks up to 32K. Slug 11b reads 128K blocks and writes up to 128K. Quick2 and Slug 11b write some status bytes, too.
Now, what do the other tools with their IO? 6pack reads 128K and outputs smaller chunks. 6pack_opt seems to be reading 64K chunks. LZOP reads 256K chunks and writes blocks up to 256K. Tor reads 256K chunks most of the time and writes really big blocks.
It appears, that reading blocks bigger than 128K degrades wall time a lot - e.g. LZOP and Tor are both 2x slower while having a damn fast processing time. The write-cache on my system works fine - it seems that writing strategies do not influence the results much. 6pack's IO strategy seems to be alright, oddly it looses a lot of time somewhere else (I checked its results thrice). For reasons of simplicity I took threading and different file-APIs out of the examination. And finally, here are the results:
-------------------------
6PACK -1
-------------------------
User Time = 7.531
Global Time = 31.406
User Time = 6.750
Global Time = 43.031
User Time = 7.093
Global Time = 42.391
User Time = 7.312
Global Time = 43.000
-> 574.618.151
-------------------------
6PACK_OPT -1
-------------------------
User Time = 6.453
Global Time = 21.781
User Time = 7.625
Global Time = 36.032
User Time = 7.140
Global Time = 41.688
User Time = 7.296
Global Time = 41.844
-> 577.201.364
-------------------------
LZOP -1
-------------------------
User Time = 9.281
Global Time = 22.000
User Time = 9.296
Global Time = 20.703
User Time = 9.203
Global Time = 20.812
User Time = 9.296
Global Time = 22.344
-> 534.098.618
-------------------------
QUICK2
-------------------------
User Time = 9.812
Global Time = 18.281
User Time = 8.437
Global Time = 11.063
User Time = 8.453
Global Time = 10.406
User Time = 8.312
Global Time = 10.297
-> 484.663.774
-------------------------
SLUG11b
-------------------------
User Time = 6.218
Global Time = 15.406
User Time = 6.140
Global Time = 15.890
User Time = 6.000
Global Time = 11.813
User Time = 5.750
Global Time = 10.641
-> 482.258.314
-------------------------
SLUG126b
-------------------------
User Time = 11.390
Global Time = 13.453
User Time = 11.453
Global Time = 13.031
User Time = 11.718
Global Time = 13.234
User Time = 11.468
Global Time = 13.219
-> 377.148.927
-------------------------
THOR E2
-------------------------
User Time = 10.062
Global Time = 19.500
User Time = 9.593
Global Time = 12.453
User Time = 9.140
Global Time = 10.953
User Time = 9.406
Global Time = 10.938
-> 460.255.840
-------------------------
THOR E3
-------------------------
User Time = 12.250
Global Time = 15.156
User Time = 12.140
Global Time = 14.031
User Time = 12.437
Global Time = 14.000
User Time = 12.265
Global Time = 13.782
-> 412.496.116
-------------------------
THOR E4
-------------------------
User Time = 32.171
Global Time = 34.594
User Time = 32.078
Global Time = 33.421
User Time = 32.125
Global Time = 33.360
User Time = 32.109
Global Time = 33.328
-> 359.995.412
-------------------------
TOR -3
-------------------------
User Time = 13.156
Global Time = 21.797
User Time = 13.562
Global Time = 23.297
User Time = 13.109
Global Time = 21.344
User Time = 13.187
Global Time = 21.172
-> 415.575.354