Тест архивов. Какой формат выбрать?
Эта тема будет посвящена сравнению алгоритмов сжатия. Для владельцев Медленного и Лимитного Интернета будет полезно, да и не только им.
Для сжатия использовался ZArchiver 0.9.5 для Android, настройки всех форматов на Ультра. Указаны Размер и Процент от Размера Оригинала. Для 7Z включён LZMA2 (В настройках ZArchiver)
Под первым Спойлером показаны исходные размеры (Смотрите в нижний левый угол, последняя строка).
Внимание! Много Картинок!

Есть 7 папок, под разные категории
Теперь начнём же сравнение!
1: Образ Windows 3.10
2: Война и мир, FB2
3: Jeanne d’Arc, Rus, PSP
4: 459 игр для NES aka Денди, Rus
5: Исходный код Той Самой Игры — DOOM
6: Прошивка Navitel C500
7: Субтитры для Наруто: Ураганные Хроники! Кто помнит Акацуки и Мадару?
Вот и комментарии
Категория 1: Образ Windows 3.10
Оригинал: 11.25 МБ
Форматы типа «Как у всех» (Далее будет указан как «Тип 1»)
ZIP: 8.89 МБ / 79% // Слабовато.
7Z: 8.05 МБ / 71% // Что и следовало ожидать от 7Z.
Форматы типа «Найди их — тот ещё квест». Кроме TAR.XZ. (Далее будет указан как «Тип 2»)
TAR.LZ4: 9.48 МБ / 84% // Слился от ZIP. Что ещё ожидать от формата, заточенного на скорость. Хотя.
TAR.ZST: 8.38 МБ / 74% // Очень быстрое сжатие и распаковка, размеры в основном между ZIP и 7Z, хотя возможны варианты. Известен как ZStandard или ZSTD
TAR.XZ: 7.70 МБ / 68% // Тот случай, когда 7Z — не самый крутой в области сжатия!
Категория 2: Война и мир, в формате FB2
Оригинал: 9.07 МБ
ZIP: 3.37 МБ / 37% // Перфекционисты могут быть довольны — 37 же!
7Z: 2.96 МБ / 32% // Классика жанра
TAR.LZ4: 4.57 МБ / 50% // LZ4 снова слился.
TAR.ZST: 3.31 МБ / 36% // И снова победа над ZIP!
TAR.XZ: 2.96 МБ / 32% // Тут 7Z и XZ равны.
Категория 3: Игра для PSP — Jeanne d’Arc, русская версия!
Оригинал: 1.16 ГБ
ZIP: 640.14 МБ / 53% // Почти в два раза. Но всё равно — размеры ого-го!
7Z: 459.80 МБ / 38% // Вот это адекватные размеры!
TAR.LZ4: 701.92 МБ / 59% // Такой архив весит многовато.
TAR.ZST: 601.44 МБ / 50% // Архив меньше на
40 МБ, но скорость распаковки. Вы удивитесь, когда начнёте тесты на файлах больше 1 ГБ!
TAR.XZ: 459.80 МБ / 38% // Снова они равны!
Категория 4: Сборник из 459 игр для NES / Денди на русском языке!
Оригинал: 76.44 МБ
ZIP: 38.30 МБ / 50% // Чётко и поровну!
7Z: 34.82 МБ / 45% // 5 Процентов разницы для кого-то могут значит.
TAR.LZ4: 46.15 МБ / 60% // Как всегда.
TAR.ZST: 33.80 МБ / 44% // 7Z гнут даже скоростные форматы!
TAR.XZ: 27.83 МБ / 36% // 7Z уложили на лопатки!
Категория 5: Исходный код Той Самой Игры — DOOM!
Оригинал: 1.36 МБ
ZIP: 440.01 КБ / 31% // Классике всегда будет место!
7Z: 400.31 КБ / 28% // Немного лучше.
TAR.LZ4: 492.36 КБ / 35% // Не удивляйтесь!
TAR.ZST: 323.63 КБ / 23% // И снова 7Z пои. Победили, вот!
TAR.XZ: 273.11 КБ / 19% // Fatality!
Категория 6: Прошивка Navitel C500
Оригинал: 64.93 МБ
ZIP: 47.39 МБ / 72% // Норм
7Z: 40.56 МБ / 62% //Вот так лучше!
TAR.LZ4: 51.56 МБ / 79% // ОК.
TAR.ZST: 44.89 МБ / 69% // Скорость — ваше всё! (Соник согласится)
TAR.XZ: 40.51 МБ / 62% // Тут разница некритична.
Категория 7: Субтитры для Наруто: Ураганные Хроники! Кто помнит Акацуки, Мадару?
Оригинал: 134.00 МБ
ZIP: 32.67 МБ / 24% // Тексты всегда сжимаются на ура!
7Z: 28.46 МБ / 21% // Кто-то сэкономит траффик.
TAR.LZ4: 39.68 МБ / 29% // Даже тексты. Сжимает хуже всего!
TAR.ZST: 19.53 МБ / 14% // 7Z нагибают аж от души!
TAR.XZ: 11.68 МБ / 8% // Ну. у 7Z нет шансов!
Вывод
ZIP средний во всём, кроме сжатия — тут он занимает предпоследнее место!
7Z имеет высокое сжатие и низкую скорость сжатия / распаковки, но иногда его нагибают скоростные форматы, не говоря уже об XZ!
LZ4 до появления ZStandard мог быть пригоден благодаря скорости сжатия / распаковки, но после появления ZStandart его стоит использовать разве то для совместимости.
ZStandard имеет сжатие в основном между ZIP и 7Z, ОЧЕНЬ высокую скорость сжатия / распаковки, а иногда он по сжатию превосходит 7Z!
XZ имеет самое лучшее сжатие и низкую скорость сжатия / распаковки. Шикарный вариант для медленного и лимитного интернета.
Делайте свои выводы.
Спасибо за чтение!
Upd: сделал дополнительные тесты и узнал, что:
1: LZ4 иногда сжимает ЛУЧШЕ, чем ZIP, притом НАМНОГО быстрее даже на ультра настройках!
2: По скорости сжатия / распаковки 1 место занимает LZ4 (Скорость пригодна для Оперативной Памяти), а второе — ZStandard. Учитивая то, что формат создал автор LZ4 для замены алгоритмов на основе Deflate (ZIP, GZIP и т.д.), по скорости и степени сжатия он круче ZIP по всём! Игра для PSP, которую ZIP на Ультрах сжимает десятки минут, ZStandard на тех же настройках делает это за несколько секунд, давая меньший размер! И да, образ Windows XP SP3 особо не сжимается — я пытался. Ещё раз спасибо за чтение!
Сравниваем: какой формат сжатия файлов лучше?
Какие форматы сжатия файлов вы бы использовали? Скорее всего, именно Zip, RAR, 7z, ведь они самые популярные. Было проведено несколько тестов, которые помогут определиться, какой формат сможет дать максимальный уровень сжатия и какой самый удобный в использование.
Стоит заметить, что степень сжатия является не самым главным фактором по тому что некоторые форматы более удобны, или интегрированы в операционную систему, в тоже время другие могут являться частью стороннего программного обеспечения.
Сжатие файлов эталонов популярными архиваторами
На самом деле всё не так просто, как может показаться на первый взгляд. Степень достигаемого сжатия зависит больше от программы архиватора, её настроек и алгоритмов. В тестирование вместо обыкновенных файлов документов Microsoft Office, в свою очередь уже использующих сжатие, было решено использовать сжатие уже установленных компьютерных игр.
Но тут может возникнуть вопрос, почему именно игры? Но ответ на самом деле кроется совсем близко, ведь игры включают в себя графику, музыку, текстовые файлы, исполняемые файлы, не говоря уже о других типах файлов, игры сочетают в себе всю информацию, которая может использоваться для сжатия в повседневной жизни. Вы так же можете подробнее узнать что такое файл, перейдя по ссылке.
Первой стала Bastion (Бастион), установленная игра имела размер около 863 мегабайт: музыки, графических и исполняемых файлов, плюс ко всему этому разные типы документов и вот что было получено:
- Zip (Windows 8.1): 746 МБ (86.4% от оригинального размера);
- Zip (WinZip): 745 МБ (86.3% от оригинального размера);
- RAR (WinRAR): 746 МБ (86.4% от оригинального размера);
- 7z(7-Zip): 734 МБ (85 % от оригинального размера).
Следующей для проведения тестирования была выбрана игра Hotline Miami (Горячая линия Маями), которая имела размер 654 Мб:
- Zip (Windows 8.1): 316 MB (48.3% от оригинального размера)
- Zip (WinZip): 314 MB (48% от оригинального размера)
- RAR (WinRAR): 307 MB (46.9% от оригинального размера)
- 7z (7-Zip): 301 MB (46% от оригинального размера)
Кто же стал лидером файлового сжатия на основе тестов
Лидером чистого сжатия становится формат 7z, что на самом деле это не является удивительным для этого популярного формата. Если вы хотите, что ни будь сжать и использовать при этом как можно меньше места для хранения, нужно использовать именно 7z. Если ко всему этому воспользоваться настройками программы для экономии ещё большего места, то сжать необходимый файл можно ещё лучше. При этом, время сжатия и дальнейшей распаковки тоже увеличится.
Результаты RAR и Zip были очень близки друг к другу, а для интегрированной в Windows 8.1 WinZip не составит труда открыть формат Zip.
Для максимально сжатия лучше использовать 7-Zip с 7z, а вот для большего удобства и максимальной совместимости лучшим будет создание Zip-файлов, с помощью интегрированного в операционной системе функционала.
Если вы используете сжатие для себя, то можно использовать любой формат, который вам захочется и ни каких проблем с дальнейшим открытием не возникнет. Но не у всех на компьютерах установлено то или иное ПО (программное обеспечение) для открытия запакованных файлов. Например, если вы размещаете архивы в интернете, то нужно использовать формат, которым скачавшие его люди смогут без труда воспользоваться, самый популярный.
Популярные форматы, которые уже интегрированные в операционные системы:
- Windows: только zip. Эта функция была добавлена ещё во времена Windows XP, скорее всего каждый пользователь системы Windows сможет создавать и извлекать zip файлы.
- Mac OS X: формат сжатия zip поддерживается, а для прочих форматов архивов как tar, gz, bz2, 7z и rar потребуется установка стороннего программного обеспечения.
- Linux: Zip поддерживается прямо после установки, да большинство форматов сжатия могут быть использованы, но не без дополнительного программного обеспечения
- Crome OS: zip и rar поддерживаются, как и tar, gz, tar и bz2, но для этих расширений так же придётся установить дополнительные приложения.
Windows по умолчанию поддерживает только Zip файлы, так как Zip наиболее популярный и универсальный формат, но, если вам приходится работать с Mac или Linux вы, конечно же, можете использовать такой формат сжатия как 7z, но тогда вам придётся установить приложение для его открытия.
Все же если целью является получение лучшего сжатия, то 7z – это путь в правильном направление, а вот если важнее удобство использования как для себя, так и для других, то самым распространённым и как следствие удобным в использование форматом сжатия будет, как написано ранее zip.
Результаты произведённых тестов являются обобщёнными. Получены разные результаты архивирования с разными типами данных, но благодаря общим результатам можно на наглядном примере убедиться в расходящихся результатах для разных форматов сжатия и определиться с подходящим.
Какой формат архива лучше
Архиваторы — это программы, позволяющие уменьшить размер файла для экономии места на диске. Программ-архиваторов много. Они отличаются друг от друга методами сжатия информации. Наиболее распространенные из них — ZIP, RAR.
Архиваторы могут упаковать в архив один или несколько файлов, а, может быть, и каталог, с включенными в него подкаталогами. В имени полученного архивного файла будет стоять расширение, указывающее на программу-архиватор, которой сделан этот архив (т.е. zip, или rar. ). Для того, чтобы воспользоваться информацией, запакованной в архив, необходимо архив «раскрыть», то есть распаковать. Это делается либо той же программой-архиватором, либо парной к ней программой-разархиватором.
Архивы ZIP.
Архивы RAR.
WinRAR – это 32-разрядная версия архиватора RAR для Windows. Это мощное средство создания архивов и управления ими. WinRAR поддерживает следующие функции:
• Полная поддержка архивов RAR и ZIP.
• Оригинальный высокоэффективный алгоритм сжатия данных.
• Специальный алгоритм мультимедиа-сжатия.
• Интерфейс командной строки.
• Самораспаковывающиеся архивы и тома (SFX).
• Восстановление физически поврежденных архивов.
• Другие дополнительные функции, например, шифрование, блокировка, добавление архивных комментариев (с поддержкой ESC-последовательностей ANSI), ведение протокола ошибок, список порядка файлов, метки томов и прочие.
WinRAR можно использовать двумя способами: в режиме графической оболочки со стандартным интерфейсом Windows и в командной строке. Чтобы использовать WinRAR в режиме оболочки, надо дважды щёлкнуть мышью на значке WinRAR ; после этого для архивации и извлечения файлов можно пользоваться кнопками и меню.
В комплект поставки WinRAR входит файл Rar.exe. Этот файл является также 32-разрядной версией RAR для Windows, но она поддерживает только интерфейс командной строки и работает в текстовом режиме. Обычно консольная версия RAR используется для вызова из пакетных файлов (BAT и CMD), для запуска из приглашения DOS и др. Она поддерживает в командной строке больше команд и ключей, чем WinRAR.
Для использования WinRAR в режиме командной строки необходимо в меню «Пуск» открыть диалог «Выполнить…» или окно «Программы/Сеанс MS-DOS» и ввести нужную команду. Если запустить WinRAR из командной строки без параметров, то будет активизирована оболочка. Общий синтаксис выглядит следующим образом:
WinRAR <команда> -<ключ1> -<ключN> <архив> <файлы…> <@файл-список…> <путь для извлечения\>
Для создания и управления архивами служат опции командной строки (команды и ключи). Команда — это строка, указывающая, что RAR должен выполнить соответствующее действие. Ключи служат для изменения действия команды. Другие параметры — это имена архива и файлов, которые будут добавлены или извлечены из архива.
Применяются следующие команды:
a – добавить файлы в архив.
Пример: создает или обновляет существующий архив myarch, добавляя в него все файлы из текущего каталога:
rar a myarch
c – добавление архивного комментария. Комментарии отображаются во время обработки архива. Длина комментария не должна превышать 62000 байт.
Примеры:
rar c distrib.rar
cf – добавление файловых комментариев. Они отображаются при обработке команды v. Длина файлового комментария ограничена 32767 байтами.
Пример:
rar cf bigarch.txt
cw – записать комментарий архива в указанный файл.
d – удалить файлы из архива. Обратите внимание, что если в результате выполнения этой команды в архиве окажутся удаленными все файлы, то пустой архив удаляется.
f – освежить файлы в архиве. Обновляет уже содержащиеся в архиве файлы только в том случае, если они старше обновляемых.
е — извлечь файлы в текущий каталог.
m[f] – переместить в архив [только файлы]. При операции перемещения после успешного создания архива добавленные в него файлы и каталоги удаляются. Если используется модификатор f и/или ключ -ed, то каталоги не будут удалены.
к – заблокировать архив.
l[t] – просмотреть содержимое архива [с технической информацией]. Отображается список файлов, аналогичный команде v, но без путей, т.е. показываются только имена файлов. Если в команде присутствует модификатор t, то будет также отображена дополнительная техническая информация.
р – вывести файл на устройство стандартного вывода (stdout).
r –восстановить архив. Восстановление архива состоит из двух этапов. Сначала поврежденный архив сканируется на наличие информации для восстановления. Если в архиве есть информация для восстановления, а поврежденная часть данных – непрерывна и имеет размер до N*512 байт (N – количество секторов с информацией для восстановления, находящихся в архиве), то шансы на успешное восстановление очень высоки. После восстановления на этом этапе будет создан новый архив с именем _RECOVER.RAR.
Если в поврежденном архиве нет информации для восстановления или архив невозможно полностью восстановить с ее помощью из-за серьезности повреждения, то начинается второй этап восстановления. Во время этого этапа реконструируется только структура архива. Файлы с неверной CRC не восстанавливаются, но можно восстановить неповрежденные файлы, которые в противном случае были бы недоступны из-за повреждения структуры архива.
После окончания этого этапа создается реконструированный архив с именем _RECONST.RAR.
Во время выполнения операции восстановления, RAR может спросить у пользователя, добавлять ли в архив найденный элемент.
Нажмите Да (Y), чтобы добавить этот элемент в _RECOVER.RAR.
rr[N] – добавить информацию для восстановления. В архив можно добавить необязательную (избыточную) информацию для восстановления. Это немного увеличивает размер архива, но может помочь при восстановлении архива, поврежденного в результате сбоя дискеты или др. Информация для восстановления может содержать до 8 секторов.
Если данные повреждены в одном месте, то каждый сектор восстановления может восстановить 512 байт поврежденной информации, но в случае многократного повреждения это значение может снизиться.
s[имя] – преобразовать архив в SFX. Архив объединяется с SFX-модулем (используется модуль из файла Default.sfx или указанный в этой команде). В версии для Windows файл Default.sfx должен находиться в том же каталоге, что и Rar.exe, в версиях для Unix и BeOS – в домашнем каталоге пользователя.
t – протестировать файлы в архиве. Эта команда имитирует извлечение файлов, ничего не записывая в выходной поток, для проверки указанных файлов.
Примеры:
Протестировать архивы в текущем каталоге:
rar t *
u – обновить файлы в архиве. Добавляет файлы, которых еще нет в архиве, и обновляет только те файлы в архиве, версии которых на диске новее, чем в архиве.
v[t] – подробный список содержимого архива. О файлах отображаются следующие сведения: полное имя, комментарий файла, размер, степень сжатия, дата и время последнего обновления, атрибуты, CRC, метод сжатия и минимальная версия RAR, необходимая для извлечения. Если применяется модификатор t, то также будет отображена дополнительная техническая информация.
Для просмотра содержимого всех томов архива надо использовать звездочку (*) вместо расширения архива или ключ v.
x – извлечь файлы с полными путями.
Ключи (используются вместе с командами):
-? – вывести справочную информацию о командах и ключах. Та же информация появляется, если дана неправильная команда или RAR запущен без команд.
-ac – снять атрибут «Архивный» после архивации или извлечения файла (только в версии для Windows).
-ag [формат] – добавить к имени архива текущую дату и время. Добавляет к имени архива дату и время создания архива. Полезно при регулярном создании резервных копий.
Формат по умолчанию «YYYYMMDDHHMMSS» можно переопределить с помощью параметра формат этого ключа. Допустимы следующие символы:
Y – год
M – месяц
MMM – месяц в виде строки (Jan, Feb и т.д.)
D – день
H – часы
M минуты (обрабатывается как минуты, если стоит после часов)
S – секунды
Формат RAR в большинстве случаев обеспечивает лучшее сжатие, чем ZIP, особенно в режиме создания непрерывных архивов.