Я знаю gzip роками, нещодавно я побачив bzip використовуватися на роботі. Чи є вони в основному еквівалентними, або існують значні плюси і мінуси одного з них над іншим?
Я знаю gzip роками, нещодавно я побачив bzip використовуватися на роботі. Чи є вони в основному еквівалентними, або існують значні плюси і мінуси одного з них над іншим?
Відповіді:
Gzip і bzip2 функціонально еквівалентні. (Там колись був bzip, але це, здається, повністю зникло з обличчя світу.) Інші поширені формати стиснення - zip, rar і 7z; ці три програми виконують як стиснення, так і архівування (упаковка декількох файлів в одну). Ось деякі типові оцінки швидкості, доступності та типового коефіцієнта стиснення (зауважте, що ці рейтинги є дещо суб'єктивними, не приймайте їх як євангельські)
decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2
Як ви бачите, переможця не існує. Якщо ви хочете покладатися на програми, які, ймовірно, вже будуть встановлені, використовуйте zip на Windows (або, якщо можливо, саморозпаковуються архіви, як Windows не постачається з будь-яким з них) і gzip на unix. Якщо потрібно максимальне стиснення, використовуйте 7z.
Rar також має недолік, що, наскільки я знаю, немає вільного програмного забезпечення, що створює rar архіви або які можуть розпакувати всі rar архіви. Інші формати мають вільні реалізації і не мають (серйозних) патентних претензій.
bzip2
є менш доступним, ніж gzip
? Які системи UNIX ні поставляються з bzip2
?
Наскільки я можу сказати, gzip відбувається швидше, в той час як bzip загалом забезпечує краще (менше) стиснення.
Алгоритми мають різний час, пам'ять, просторові компроміси. Майте на увазі, що ці алгоритми були написані досить давно, і ваш смартфон у багато разів більше ЦП, ніж настільні комп'ютери тих днів.
Ваш вибір між універсальністю (.gz) і трохи більше стисненням (.bz2). Тільки ви можете сказати, про якого ви піклуєтеся більше.
Однією з переваг .gz є те, що він може стискати потік, послідовність, де ви не можете дивитися ззаду. Це робить його офіційним компресором потоків http. Мені потрібно було використовувати один раз gzip через це, але навряд чи вам доведеться думати про це.
Ось список сайтів, які випробовують алгоритми стиснення, щоб знайти тільки bzip і gzip вам доведеться зробити деякі копання, але більшість сайтів буде перераховувати характеристики алгоритмів. Таким чином можна порівняти важливі для вас розміри (коефіцієнт стиснення), час, пам'ять, процесор.
http://www.maximumcompression.com/benchmarks/benchmarks.php
З мого досвіду bzip запропонував послідовно кращі коефіцієнти стиснення, ніж gzip. Плюс з 7zip як менеджер і алгоритм bzip, 7zip може використовувати багатоядерні процесори.
Пер http://tukaani.org/lzma/benchmarks.html , gzip стискається вдвічі швидше, ніж bzip2, і розпаковується десять разів швидше.
Наприклад, для використання з кешування s3, на travis і т.д., де ви хочете швидкість стиснення / розпакування, а не тільки малі розміри, GZIP може бути хорошим компромісом.