Між xz, gzip та bzip2, який алгоритм стиснення дає найменший розмір файлу та найшвидшу швидкість при стисненні досить великих тарболів?
Між xz, gzip та bzip2, який алгоритм стиснення дає найменший розмір файлу та найшвидшу швидкість при стисненні досить великих тарболів?
Відповіді:
У своєму стрес-тесті я стиснув 464 мегабайти даних, використовуючи три перелічені формати. Gzip повернув файл 364 Мб. Bzip2 повернув файл 315 Мб. Xz повернув файл 254 Мб. Я також зробив простий тест на швидкість:
Стиснення:
1: Gzip
2: Xz
3: Bzip2 (мій вентилятор досить сильно дув, поки це йшло, вказуючи на те, що мій Athlon II був досить напружений)
Декомпресія:
1: Xz
2: Gzip
3: Bzip2
Зверніть увагу, що всі ці тести проводилися з останньою версією 7-Zip.
Xz - найкращий формат для добре округлої компресії, тоді як Gzip дуже хороший для швидкості. Bzip2 є гідним своїм коефіцієнтом стиснення, хоча, мабуть, слід використовувати xz замість нього.
bzip2 -9 <file>
?
Я зробив власний орієнтир щодо встановлення зображення vmdk 1.1GB Linux:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
всі рівні стиснення на max, процесор Intel I7 3740QM, пам'ять 32 ГБ 1600, джерело та призначення на диску оперативної пам'яті
Я зазвичай використовую rar або 7z для архівації звичайних файлів, таких як документи.
а для архівації системних файлів я використовую .tar.gz або .tar.xz за допомогою файлового ролика або tar з параметрами -z або -J разом із --затримувати натискання натисканням та зберегти дозволи (також альтернативно .tar.7z або .tar.rar можна використовувати)
оновлення: оскільки tar лише зберігає нормальні дозволи, а не ACL, все одно, звичайний .7z плюс резервне копіювання та відновлення дозволів та ACL вручну через getfacl та sefacl можна використовувати, що, здається, є найкращим варіантом як для архівації файлів, так і для резервного копіювання системних файлів, оскільки він буде повним зберегти дозволи та ACL, має контрольну суму, перевірку цілісності та можливість шифрування, лише недолік - p7zip недоступний скрізь
Я думаю, що ця стаття дає дуже цікаві результати.
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
Найбільш ефективні формати - xz та lzma, обидва з переданим параметром -e.
Найшвидший алгоритм - це на сьогодні lzop та lz4, який може створити рівень стиснення не дуже далеко від gzip за 1,3 секунди, тоді як gzip займає 8,1 секунди. Коефіцієнт стиснення становить 2,8 для lz4 і 3,7 для gzip.
Ось кілька результатів, які я витягнув із цієї статті:
Gzip: 8,1s @ 3,7
lz4: 1,3s @ 2,8
xz: 32,2s @ 5,43
xz -e: 6m40 @ 7.063
Тож якщо вам справді відчайдушно потрібна швидкість, lz4 є приголомшливим і все ще забезпечує коефіцієнт стиснення 2,8.
Якщо вам відчайдушно потрібно зберегти байт, xz на максимальному рівні стиснення (9) робить найкращу роботу для текстових файлів, таких як джерело ядра. Однак він дуже довгий і займає багато пам’яті.
Хороший варіант, коли потрібно мінімізувати вплив на час І на простір - gzip. Це те, що я використовував би для створення щоденних резервних копій виробничого середовища.