Als systeembeheerder kom je compressie vaker tegen dan je denkt: logbestanden worden automatisch gecomprimeerd wanneer ze geroteerd worden, man-pagina's staan gecomprimeerd op de harde schijf, ZFS laat toe om een volledig bestandssysteem transparant te comprimeren, en heel wat softwarepakketten die je UNIX-systeem downloadt zijn gecomprimeerd. Bovendien maak je zelf ook wel eens expliciet gecomprimeerde bestanden aan, bijvoorbeeld voor backups.

Vaak denk je niet na bij de standaardkeuze voor het compressie-algoritme, maar de juiste keuze kan een heel verschil maken. Alleen is die keuze knap lastig, want er bestaat niet zoiets als het 'beste' compressie-algoritme: het ene algoritme zal bijvoorbeeld beter zijn voor het comprimeren van vooral tekst, terwijl het andere algoritme in het algemeen beter is, maar tekst minder goed comprimeert.

En daarnaast zijn er natuurlijk snelheidsverschillen. Je moet dus zelf voor je eigen situatie beslissen wat je het belangrijkst vindt. Wanneer je bijvoorbeeld logbestanden wilt comprimeren, moet dat snel gaan en mag het niet te veel processorkacht gebruiken, zodat de andere taken die de server uitvoert geen last hebben van de compressie. Maar wanneer je een groot bestand online plaatst dat vaak gedownload zal worden, dan loont het de moeite om een trager compressie-algoritme te gebruiken dat een heel klein bestand als resultaat heeft. Heb je uitgemaakt wat je vereisten zijn, dan kun je de verschillende algoritmes op je verschillende soorten gegevens testen. En dan zul je ook nog zien dat sommige algoritmes op een multicore-systeem meerdere processorkernen tegelijk kunnen gebruiken, terwijl andere algoritmes daar niet van kunnen profiteren.

gzip, bzip2 en xzip

Met de waarschuwing in het achterhoofd dat je alles voor je eigen situatie eens moet benchmarken, kunnen we toch wat algemene uitspraken doen over de verschillende algoritmes. Zo zijn xz-bestanden in het algemeen kleiner dan bz2-bestanden, die op hun beurt in het algemeen kleiner zijn dan gz-bestanden. Dat is dan ook de reden waarom xz sinds Fedora 12 gebruikt wordt om pakketten te comprimeren, en ook Arch Linux en Slackware gebruiken het ondertussen. Voor grote bestanden die vaak gedownload worden is xz dus een goede keuze. Voor tekstbestanden levert xz in het algemeen echter niet de beste compressie op.

Het goede comprimeervermogen van xz heeft natuurlijk zijn prijs: de tijd die nodig is voor de compressie is veel groter dan bij gzip en bzip2, toch zeker bij de hogere compressieniveaus (gzip, bzip2 en xz ondersteunen niveaus van snel en weinig compressie tot traag en veel compressie dankzij de opties -1 tot -9). Alleen bij de lagere compressieniveaus kan xz even snel of zelfs sneller comprimeren dan bzip2, maar gzip blijft het snelste. Anderzijds decomprimeert xz sneller dan bzip2. De parallelle versie van die laatste, pbzip2, kan het wel sneller doen op een multicore-systeem, maar dat werkt alleen als het bestand ook gecomprimeerd is met pbzip2. Het snelste op vlak van decompressie is nog altijd gzip. Bron: Techworld