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.