Сводка результатов многофакторных тестов сжатия файлов

Сводка результатов многофакторных тестов сжатия файлов

введите описание изображения здесь

Итак, в 7zip есть разные методы сжатия. Какой метод лучше всего подходит для какой задачи?

Например: одно из различий между LZMA и LZMA2 заключается в том, что я могу выбрать все ядра своего процессора, тогда как в LZMA максимум 2 ядра.

решение1

Используйте LZMA 2, если вы не хотите извлекать архив в системе, которая не может работать с архивами LZMA 2.

Вообще говоря, большинство современных алгоритмов сжатия дают примерно одинаковое сжатие, а что касается количества ядер, которые вы можете использовать одновременно, то вам решать, сколько вы хотите использовать. Вообще говоря (если вы не создаете большие архивы), нет причин нуждаться в большем количестве. Кроме того, при сжатии несколькими ядрами узким местом может стать жесткий диск.

решение2

7-Zip (по крайней мере, по состоянию на 27.09.2019) имеет встроенную справку с очень, очень подробным объяснением различных настроек, которые вы можете выбрать, и того, для чего в целом каждый из них предназначен.

Никаких результатов тестов или чего-то подобного нет, но этой информации было достаточно, чтобы вселить в меня уверенность в том, что я выбираю «достаточно хорошие», а не «случайно ужасные» настройки.

Справочный документ доступен через файловый менеджер 7-Zip, а также через диалоговое окно «Добавить в архив».

Путь «Содержимое» к странице, которую я нашел полезной (которая открывается непосредственно из диалогового окна «Добавить в архив»), следующий:

File Manager / Plugins / 7-Zip / Add to Archive Dialog Box

введите описание изображения здесь

Вот примерная копия раздела о методах сжатия:

Описание метода

  • ЛЗМА
    • Это базовый метод сжатия для формата 7z. Даже старые версии 7-Zip могут распаковывать архивы, созданные методом LZMA. Он обеспечивает высокую степень сжатия и очень быструю распаковку.
  • ЛЗМА2
    • Метод сжатия по умолчанию формата 7z. LZMA2 — это метод сжатия на основе LZMA. Он обеспечивает лучшую поддержку многопоточности, чем LZMA. Но в некоторых случаях степень сжатия может быть хуже. Для лучшей степени сжатия с LZMA2 используйте 1 или 2 потока ЦП. Если вы используете LZMA2 с более чем 2 потоками, 7-zip разбивает данные на фрагменты и сжимает эти фрагменты независимо (2 потока на каждый фрагмент).
  • ППМд
    • Алгоритм PPMdH Дмитрия Шкарина с небольшими изменениями. Обычно обеспечивает высокую степень сжатия и высокую скорость для текстовых файлов.
  • BZip2
    • Стандартный метод сжатия на основе алгоритма BWT. Обычно он обеспечивает высокую скорость и довольно хорошую степень сжатия для текстовых файлов.
  • Сдувать
    • Стандартный метод сжатия форматов ZIP и GZip. Степень сжатия не слишком высокая. Но обеспечивает довольно быстрое сжатие и распаковку. Метод Deflate поддерживает только словарь размером 32 КБ.
  • Сдуть64
    • Модифицированная версия алгоритма Deflate с увеличенным словарем (64 КБ).

решение3

Lzma2 работает быстрее при использовании 4 и более ядер и обеспечивает лучшее сжатие.Этот документвсе объясняет.

решение4

Ссылку можно найти на wayback machine:

https://web.archive.org/web/20221015140740/http://www.maximumcompression.com/data/summary_mf2.php

(было неприятно переформатировать таблицу - интересно, почему он не может преобразовать таблицу HTML в свой собственный формат)

Сводка результатов многофакторных тестов сжатия файлов

Тип файла: Несколько типов файлов (всего 46)

Количество файлов для сжатия в этом тесте: 510

Общий размер файла (байт): 316.355.757

Средний размер файла (байт): 620 305

Самый большой файл (байт): 18,403,071

Наименьший файл (байт): 3554

Этот тест предназначен для моделирования «реальной» производительности компрессоров данных без потерь. Тестовый набор содержит смесь различных типов файлов, которые выбираются с учетом того, «для чего люди чаще всего используют архиваторы». Тестовый набор должен содержать данные, взвешенные (как по типу, так и по доле файлов в наборе) по тому, как часто эти файлы используются для сжатия обычными пользователями с помощью программного обеспечения для сжатия. Так, например, в наборе будет больше файлов txt, чем файлов .ocx (да, это произвольно). Набор содержит сотни файлов и имеет общий размер более 300 Мб. Идея большой коллекции заключается в фильтрации «шума». Компрессор может плохо работать с 1 или 2 типами файлов, но на очень большой коллекции это не повредит так сильно.

Некоторые программы, такие как CCM и BZIP2, могут сжимать только один файл за раз. Для этих программ создается один файл TAR, содержащий все файлы. Файлы в этом файле TAR упорядочены в алфавитном порядке по суффиксу, затем по имени. Результаты этих компрессоров отмечены знаком «Y» в колонке tarred.

Тестовый набор состоит из следующих типов файлов:

Типы файлов) Описание % от общего количества # файлов
ТОС, МБХ Почтовые ящики Eudora 12.31 16
EXE, DLL, OCX, DRV Исполняемые файлы 10.99 35
TXT, RTF, DIC, СПГ Текстовые файлы на нескольких языках 10.21 41
BMP, TIFF Растровые изображения/TIF-изображения 7.88 15
БРЕВНО Лог-файлы 6.34 6
HTM, PHP HTML-файлы 6.13 19
ДОК Файлы MS Word 6.08 30
C, CPP, PAS, DCU Исходный код 6.00 235
МБД, CSV Базы данных 4.26 7
HLP Файлы справки Windows 4.23 7
КБФ, КБГ Предварительно сжатые шахматные базы данных 3.55 2
WAV Звуковые файлы Wave 3.45 9
XLS Электронные таблицы XLS 2.41 16
PDF Документ Adobe Acrobat 1.59 6
ТТФ Шрифты True Type 1.15 15
ОПРЕДЕЛЕНИЕ Файлы определения вирусов 1.10 3
JPEG, GIF-файлы Файлы изображений 0,53 9
ЧМ Предварительно сжатые файлы справки 0,49 2
ИНИ, ИНФ INI-файлы 0,42 10
Другие DAT, JAR, M3D, SYS, PPT, MAP, WP, RLL, RIB.. 10.88 27

Учитывая тот факт, что это должен быть «реальный» тест, я не буду рассматривать наилучшую возможную комбинацию переключателей (командной строки или графического интерфейса) для использования для оптимального сжатия, а только протестирую ограниченный набор, как это сделали бы «обычные пользователи». Для 7-zip это означает, например, что я буду использовать графический интерфейс и выберу метод сжатия Ultra (который можно легко обойти с помощью некоторых хороших переключателей командной строки), WinRar будет протестирован с максимальным размером словаря и сплошным архивированием и т. д. Программам разрешено использовать максимум 800 МБ памяти, и они должны завершить стадию сжатия в течение 12 часов. Сжатый размер должен быть 50% или меньше по сравнению с исходным размером, чтобы быть перечисленным в MFC.

Для моих тестов с одним файлом я получил много запросов на добавление времени сжатия в таблицы. Я не сделал этого по причинам, указанным в файле сводки по одному файлу, но я планирую измерить время сжатия для этого теста с несколькими файлами!. Я также решил сделать этот набор тестов «непубличным», чтобы разработчикам было сложнее настроить свою программу под этот конкретный тест. Я думаю, что это самый справедливый способ получить «реальные» тесты производительности.

Система оценок: программа, дающая наименьший сжатый размер, считается лучшей программой. Самая эффективная (читай: использующая полную версию) программа вычисляется путем умножения времени сжатия и распаковки (в секундах), которое потребовалось для создания архива, на мощность размера архива, деленную на наименьший измеренный размер архива. Чем ниже оценка, тем лучше. Основная идея заключается в том, что компрессор X имеет ту же эффективность, что и компрессор Y, если X может сжимать в два раза быстрее, чем Y, и полученный размер архива X на 10% больше размера Y. (Особая благодарность Уве Герклотцу за то, что он правильно понял эту формулу)

оценка_X = МОЩНОСТЬ(2; ((размер_X / размер_ВЕРХНИЙ) - 1) / 0,1) * время_X

с

  score_X     efficiency score for a certain compressor X

  time_X      time elapsed by compressor X (comp + decomp time)

  size_X      archive size achieved with compressor X

  size_TOP    archive size by top archiver (smallest benchmark result)

Формула для расчета эффективности компрессора на основе размера сжатого материала и времени сжатия

"0,1" представляет 10%, а степень 2 гарантирует, что для каждых 10% худших результатов (по сравнению с top) время удваивается, поэтому любой архиватор (кроме top compressor) получит штраф по времени. Оценка top compressor всегда равна его значению времени.

Связанный контент