Процессор практически не используется при сжатии с 7-Zip

447
oleg

Когда я пытаюсь сжать с максимальным сжатием 7z, загрузка моего процессора составляет менее 20%. Только одно из ядер загружено на 100%, и даже не на 100% времени.

У меня быстрый SSD, поэтому он точно не ограничен диском.

Это команды, которые я пробовал:

7z a -mx=9 -m0=LZMA2 -mmt12 test.7z *.mkv 7z a -mx=9 -m0=LZMA2 -mmt=12 test.7z *.mkv 7z a -mx=9 -m0=LZMA2 -mmt=on test.7z *.mkv 

Это график загрузки процессора:

график

0
В зависимости от того, как он реализован, он может быть однопоточным. Используемый алгоритм сжатия также может влиять на это поведение. График на самом деле мало показывает, так как неясно, какое другое программное обеспечение было запущено во время работы 7z. Seth 6 лет назад 1
Странно, LZMA2 должен использовать все ядра. Демонстрирует ли 7z такое же поведение при архивировании через диалоговое окно «Добавить в архив» пользовательского интерфейса? spikey_richie 6 лет назад 0
Да, то же самое, если я использую пользовательский интерфейс. oleg 6 лет назад 0

1 ответ на вопрос

0
Mokubai

Я вижу то же самое поведение с -mx9применением флага.

С этим флажком я вижу, что все ядра используются полностью.

mx9Алгоритм «ультра» сжатия ( ) выполняет более исчерпывающий и интенсивный поиск в памяти и поэтому ограничен пропускной способностью памяти.

Использование -mx5или -mx7приводит к увеличению загрузки процессора.


Действительно, из этой страницы видно, что настройки Ultra (9) и High (7) приводят к значительному увеличению словарей и других настроек данных для проверки на сжатие. Это значительно замедлит сжатие, и, поскольку данные находятся в памяти, ограничением является пропускная способность памяти.


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

Ultra также изменяет алгоритм поиска по словарю, предположительно на более эффективный с точки зрения сжатия, если не скорость - если бы он был быстрее, то он был бы по умолчанию. Это замедлит это еще дальше.

Алгоритмы сжатия часто пишутся как серия компромиссов, основанных на состоянии современного оборудования. Настройки снижаются от их теоретической пиковой степени сжатия, так что они достигают некоторого разумного сжатия за разумное время. Когда все настроено на максимальное сжатие, вы получаете огромные требования к памяти, а также пропускную способность памяти и время процессора. Также может потребоваться значительно больше ресурсов для распаковки.

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

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

Похожие вопросы