Srovnání kompresních nástrojů - UPDATE

Nedávno avizovaný přechod Archlinuxu na balíčkování pomocí XZ mě donutil podívat se na zoubek všemožných komprimátorů a trošku je otestovat.

Nejprve jsem testoval zabalení jednoho 116 MB velkého adresáře plného zdrojových kódů, pár obrázků a několika binárek.

nástroj velikost archivu (M) doba komprese (s) doba dekomprese (s) úspora místa (%)
tar 97 2,29 0,83 16,38
tar + gzip 60 7,58 1,58 48,28
tar + bzip2 57 56,37 16,69 50,86
tar + xz 45 70,54 3,16 61,21
zip 63 10,26 3,7 45,69
7z 57 63,86 12,57 50,86
solid 7z 55 51,09 10,95 52,59
rar 62 63,15 4,57 46,55

Následně jsem otestoval zabalení jediného velkého souboru (tar archivu adresáře z prvního testu).

nástroj velikost archivu (M) doba komprese (s) doba dekomprese (s) úspora místa (%)
gzip 60 7,2 1,49 48,28
gzip --fast 61 6,08 1,51 47,41
gzip --best 60 9,85 1,5 48,28
bzip2 57 55,47 16,56 50,86
xz 45 71,36 3,15 61,21
lzma 45 71,55 7,14 61,21
zip 60 6,79 1,46 48,28
7z 45 41,85 7,92 61,21
rar 54 63,51 2,54 53,45

Výsledky testů potvrzují, že rozhodnutí vývojářů Archlinuxu bylo správné. XZ dosahuje nejlepších kompresních poměrů a přitom rychlost dekomprese je vcelku obstojná, což je pro balíčkování důležité.

Dále je dobře vidět, že se ve většině případů nevyplatí upřednostňovat BZIP2 před osvědčeným GZIPem, protože má jen o málo lepší kompresní poměr, ale daleko horší časy jak komprese, tak i dekomprese.

Všimněte si také toho, že kompresní nástroje, které umějí archivovat adresáře (zip, 7z, rar), dosahovaly daleko lepších výsledků, pokud se jim předal místo adresáře pouze jeden TAR archiv. Tímto postupem ale samozřejmě přicházíme o možnost vyextrahovat z archivu pouze jeden soubor, aniž bychom museli nejprve rozbalit celý archiv.

Závěr

Pokud potřebujete rychle zabalit větši množství dat a o velikost výsledného souboru vám zas tak moc nejde, stále pro vás bude nejlepší volbou duo TAR + GZIP.

Pokud naopak na kompresní poměr hodně dáte, jasným favoritem je TAR + XZ. Při použití TARu se pak zajímavou alternativou stává také 7Z.

UPDATE

Všímavými čtenáři jsem byl upzorněn na to, že i TAR má určitý kompresní poměr, takže jsem upravil tabulku, aby více odpovídala realitě. Doplněn byl ještě druhý řádek nástroje 7Z, tentokrát s nastavenými parametry pro lepší kompresi.