Настройки многопоточности для архивов Unix в C#

Обзор

XZ, Bzip2 и Lzip широко распространены в Linux. Благодаря своей блочной структуре их можно сжимать в несколько потоков. API Aspose.ZIP предоставляет свойства CompressionThreads для всех из них, чтобы использовать несколько ядер ЦП при сжатии. Установка более одного значения влечет за собой многоядерное сжатие; если оставить его одним (опция по умолчанию), это приведет к сжатию с использованием одного ядра ЦП.

Многопоточное сжатие XZ

В XzArchiveSettings есть свойство CompressionThreads. В следующем примере кода показано, как сжать файл с помощью экземпляра XzArchive.

Шаги: Создайте архив XZ с многопоточным сжатием на C# </а>

  1. Откройте поток файлов для архива XZ, используя FileMode.Create для записи сжатых данных.
  2. Откройте исходный файл (data.bin) с помощью FileMode.Open и установите его в качестве данных для сжатия.
  3. Создайте экземпляр XzArchiveSettings, указав: — CheckType как Crc32 для проверки целостности. — Для CompressionThreads установлено значение 4 для многопоточного сжатия.
  4. Создайте экземпляр XzArchive, передав созданные выше настройки.
  5. Используйте SetSource, чтобы назначить исходный файл для сжатия.
  6. Сохраните сжатый архив XZ методом Save.

Многопоточное сжатие Bzip2

В Bzip2SaveOptions есть свойство CompressionThreads. В следующем примере кода показано, как сжать файл с помощью экземпляра Bzip2Archive.

Шаги: Создайте архив Bzip2 с максимальным сжатием и многопоточностью на C#< /strong></а>

  1. Откройте поток файлов для архива Bzip2 с помощью FileMode.Create для хранения сжатых выходных данных.
  2. Откройте исходный файл (data.bin) с помощью FileMode.Open и FileAccess.Read для чтения несжатых данных.
  3. Создайте экземпляр Bzip2Archive и используйте метод SetSource, чтобы назначить исходный файл для сжатия.
  4. Используйте метод Save, чтобы сжать данные в архив Bzip2, передав:
    • Bzip2SaveOptions(9) для установки максимального уровня сжатия. — Установите для CompressionThreads значение 4 для многопоточного сжатия.

Многопоточное сжатие Lzip

В XzArchiveSettings есть свойство CompressionThreads. В следующем примере кода показано, как сжать файл с помощью экземпляра XzArchive.

Шаги: Создайте Lzip-архив с пользовательским размером словаря и многопоточностью на C# </а>1. Откройте поток файлов для архива Lzip с помощью FileMode.Create, чтобы создать сжатый выходной файл. 2. Откройте исходный файл (data.bin) с помощью FileMode.Open и FileAccess.Read для чтения несжатых данных. 3. Создайте экземпляр LzipArchiveSettings, указав размер словаря 16777216 байт (16 МБ) и включив многопоточность с CompressionThreads = 4. 4. Создайте экземпляр LzipArchive с настройками, указанными выше. 5. Используйте SetSource, чтобы назначить исходный файл для сжатия. 6. Сожмите и сохраните архив методом Save, передав выходной поток файлов Lzip.

Во всех примерах используются четыре потока.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.