У своїй програмі мені потрібно стиснути журнали, що є текстовими файлами.
Здається, це bzip2
і gzip
має однаковий коефіцієнт стиснення.
Це правильно?
У своїй програмі мені потрібно стиснути журнали, що є текстовими файлами.
Здається, це bzip2
і gzip
має однаковий коефіцієнт стиснення.
Це правильно?
Відповіді:
Зазвичай bz2 має кращий коефіцієнт стиснення в поєднанні з кращими можливостями відновлення.
OTOH, гц швидше.
Кажуть, що xz навіть кращий за bz2, але я не знаю часу поведінки.
-1
, це не дуже повільно, але з налаштуваннями за замовчуванням, як правило, досить повільно.
Останнє оновлення сайту maxcompression.com - червень-2011 (відповідь оновлена у жовтні-2015).
Тому цей веб-сайт не згадує
про поточний компресор текстового чемпіона у всьому світі :
cmix
Змагання / Орієнтири:
cmix
не є переможцем, оскільки вимагає занадто багато оперативної пам’яті, більше 20 ГБ)Детальніше:
Байрон 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
Можливо, ви могли ознайомитися з цими орієнтирами , особливо з частиною тестування файлів журналів на стиснення .
Я зробив тест , щоб перевірити , щоб стиснути наступне:
папку 204MB (з 1600 HTML - файли)
Результати
7zip => 2.38 MB
winrar => 49.5 MB
zip => 50.8 MB
gzip => 51.9 MB
тож 7zip - найкращий серед них, ви можете отримати його звідси
http://www.7-zip.org/
bz2 має більш жорстке стиснення, алгоритм має більше варіантів пошуку надмірності для стиснення.
gzip є в набагато більшій кількості інструментів і є більш крос-платформою. Більше інструментів Windows може працювати з .gz файлами. Це частина http, тому навіть веб-браузери можуть це зрозуміти.
У Linux є інструменти, які дозволяють працювати над стислими файлами безпосередньо. zgrep і bzgrep можуть шукати в стислих файлах.
Якби тільки в Linux, я б використав bzip2 для дещо кращих коефіцієнтів стиснення.
xz стискає набагато краще, ніж bz2, але займає більше часу. Отже, якщо максимальна компресія - це ваша мета, а простір на вашому жорсткому диску - це премія (що в моєму випадку з одним накопичувачем на 98% повним - поки я реорганізую свої файлові системи), і ви можете звільнити сценарій, щоб виконати роботу - зробіть перерву і поверніться через 5 хвилин.
unxz дуже швидко розпаковується в моєму досвіді - що для мене добре щодня.
bz2 швидше стискається, ніж xz, але, здається, для досягнення результатів стиснення xz.
Єдиний спосіб зробити ці оцінки - це запустити орієнтири проти поєднання загальних файлів, які ви зазвичай стискали / декомпресували та змінювали параметри, щоб побачити, що з’являється вгорі.