[Setup]: LZMANumBlockThreads

Допустимые значения:

от 1 до 256

Значение по умолчанию:

1

Описание

При сжатии большого файла компрессор LZMA2 может разделить его данные на "блоки" и сжимать два или более таких блока параллельно, используя дополнительные потоки (при условии достаточной вычислительной мощности процессора). Эта директива задает максимальное количество используемых потоков — то есть максимальное число блоков, которые LZMA2 может сжимать параллельно. Для полного задействования высокого максимума требуется очень большой файл.

Объём память, необходимый для сжатия при использовании нескольких потоков, приблизительно равен:

LZMANumBlockThreads * (Объём памяти + (LZMABlockSize * 2))

Поскольку LZMA2 (и LZMA) по умолчанию использует два потока для поиска совпадений (см. CompressionThreads), в идеале для каждого потока должно быть доступно два ядра процессора. Таким образом, чтобы увидеть максимальную выгоду от значения 2, необходимы четыре ядра.

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

Если при включении нескольких потоков в сочетании с уровнем сжатия, использующим большой размер словаря (такой как ultra64), будет получена ошибка "Out of memory" (Нехватка памяти), необходимо использовать директиву LZMAUseSeparateProcess.

См. также:

LZMABlockSize