sala@home:~$

lbzip2

Már korábban írtam a pbzip2-ről, ami egy párhuzamos bzip2 implementáció, és említettem, hogy az egyik hátránya az, hogy a hagyományos bzip2 programmal készült tömörített fájlok kitömörítésekor sajnos pbzip2 is csak egy magot használ.

Már abban a cikkben is említettem lbzip2-t, most elvégeztem néhány tesztet egy nyolcmagos gépen:

Gyártottam egy tömörített fájlt a hagyományos bzip2 programmal:

$ dd if=/dev/urandom of=/tmp/teszt1000MB bs=1024 count=1000K
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 91.707 s, 11.4 MB/s
$ time bzip2 -c teszt1000MB > teszt1000MB.bz
real    2m16.594s
user    2m15.187s
sys     0m0.802s

Ezután kitömörítettem bzip2, pbzip2, lbzip2 programokkal ugyanazt a fájl, és mértem a futási időt:

$ time bunzip2 -c teszt1000MB.bz > /dev/null
real    1m8.097s
user    1m7.887s
sys     0m0.264s
 
$ time pbunzip2 -c teszt1000MB.bz > /dev/null
real    1m9.206s
user    1m9.689s
sys     0m0.300s
 $ time lbunzip2 -c teszt1000MB.bz > /dev/null
real    0m16.764s
user    2m9.889s
sys     0m1.724s

Látszik a számokból (real és user összehasonlításából), hogy bzip2 és pbzip2 egyetlen magot használ, miközben lbzip2 szépen használja az összes magot ilyen esetben is. Vagyis lbzip2 ilyen esetekben sokkal gyorsan pbzip2-nél.