Який метод архівування краще для стиснення текстових файлів в Linux?


17

У своїй програмі мені потрібно стиснути журнали, що є текстовими файлами.

Здається, це bzip2і gzipмає однаковий коефіцієнт стиснення.

Це правильно?


xz (від xz-tools або 7z від p7zip, це дуже як lzma) є найкращим. bzip2 краще, ніж gzip.
osgx

Відповіді:


5

Зазвичай bz2 має кращий коефіцієнт стиснення в поєднанні з кращими можливостями відновлення.

OTOH, гц швидше.

Кажуть, що xz навіть кращий за bz2, але я не знаю часу поведінки.


xz повільніше, ніж bzip2.
osgx

xz не просто повільніше, але й набагато повільніше, для стиснення bzip2 файлу на 300 Мбіт потрібно 30 хвилин. Я вбив xz після того, як він стискався довше 5 хвилин
Tebe

@ Копать_Шо_я_нашел Я думаю, що це сильно залежить від обраного вами рівня стиснення. З -1, це не дуже повільно, але з налаштуваннями за замовчуванням, як правило, досить повільно.
glglgl

7

Останнє оновлення сайту maxcompression.com - червень-2011 (відповідь оновлена ​​у жовтні-2015).
Тому цей веб-сайт не згадує
про поточний компресор текстового чемпіона у всьому світі :

      cmix

Змагання / Орієнтири:

Детальніше:
Байрон Knoll буде активно розвиваючи cmixв Libre програмного забезпечення (GPL) з 2013 року на основі книги стиснення даних Роз'яснення по Метту Махоні . Метт Махоні також підтримує деякі з вищезазначених орієнтирів і пропонує ZPAQ ( WP ), інкрементальний архіватор командного рядка.


Якщо ви віддаєте перевагу більш стандартному інструменту (вимагає менше оперативної пам’яті), рекомендую:

      lrzip

lrzipце еволюція rzipвід Колівас .
lrzipозначає два імені: Long Range ZIP і Lzma RZIP .
lrzipчасто краще, ніж xz(інший популярний інструмент стиснення).
Олександр Річчо також рекомендує lrzip.


Мій улюблений:

      zpaq

«Архіватор експерт» , Метт Махоні , інтенсивно працював над PAQ алгоритмами в протягом десяти років і забезпечує найкращий компроміс між CPU / ресурсами пам'яті і рівнем стиснення.

Однак остання zpaqверсія часто не пакується / доступна в недавньому дистрибутиві :-(
Я завжди компілюю її з джерел, коли в мене є нова машина і мені потрібен дуже хороший компресор: https://github.com/zpaq/zpaq

clone https://github.com/zpaq/zpaq
cd zpaq
g++ -O3 -march=native -Dunix zpaq.cpp libzpaq.cpp -pthread -o zpaq



0

bz2 має більш жорстке стиснення, алгоритм має більше варіантів пошуку надмірності для стиснення.

gzip є в набагато більшій кількості інструментів і є більш крос-платформою. Більше інструментів Windows може працювати з .gz файлами. Це частина http, тому навіть веб-браузери можуть це зрозуміти.

У Linux є інструменти, які дозволяють працювати над стислими файлами безпосередньо. zgrep і bzgrep можуть шукати в стислих файлах.

Якби тільки в Linux, я б використав bzip2 для дещо кращих коефіцієнтів стиснення.


0

xz стискає набагато краще, ніж bz2, але займає більше часу. Отже, якщо максимальна компресія - це ваша мета, а простір на вашому жорсткому диску - це премія (що в моєму випадку з одним накопичувачем на 98% повним - поки я реорганізую свої файлові системи), і ви можете звільнити сценарій, щоб виконати роботу - зробіть перерву і поверніться через 5 хвилин.

unxz дуже швидко розпаковується в моєму досвіді - що для мене добре щодня.

bz2 швидше стискається, ніж xz, але, здається, для досягнення результатів стиснення xz.

Єдиний спосіб зробити ці оцінки - це запустити орієнтири проти поєднання загальних файлів, які ви зазвичай стискали / декомпресували та змінювали параметри, щоб побачити, що з’являється вгорі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.