Многопоточные архивы Unix в Java

Обзор

Xz, bzip2 и lzip распространены в Linux. Из -за своей блочной структуры их можно сжать в несколько потоков. Aspose.zip API предоставляет метод SetCompressionThreads ‘для всех из них для использования нескольких ядер ЦП при сжатии. Установка его на более чем одно влечет за собой многоъядерное сжатие; Оставляя его - опция по умолчанию - приводит к сжатию с помощью одного CPU Core.

xz многопоточное сжатие

Существует метод setCompressionThreads в xzarchivesttings. В следующем примере кода показано, как сжать файл с использованием экземпляра xzarchive.

 1try (fileOutputStream xzFile = new FileOutputStream ("archive.xz")) {
 2    try (fileInputStream Source = new FileInputStream ("data.bin")) {
 3        Xzarchivesettings settings = new xzarchivesettings ();
 4        настройки.setchecktype (xchecktype.crc32);
 5        settings.setCompressionThreads (4);
 6        Попробуйте (xzarchive archive = new xzarchive (settings)) {
 7            archive.setsource (источник);
 8            Archive.save (xzfile);
 9        }
10    }
11} catch (ioException ex) {
12}

BZIP2 многопоточное сжатие

Существует метод setCompressionThreads в bzip2saveoptions. В следующем примере кода показано, как сжать файл с использованием экземпляра Bzip2archive.

 1try (fileOutputStream bz2file = new FileOutputStream ("archive.bz2")) {
 2    try (fileInputStream Source = new FileInputStream ("data.bin")) {
 3        try (bzip2archive archive = new bzip2archive ()) {
 4            archive.setsource (источник);
 5            Опции BZIP2SaveOptions = новый BZIP2SaveOptions (9);
 6            Options.SetCompressionThreads (4);
 7            Archive.save (bz2file, варианты);
 8        }
 9    }
10} catch (ioException ex) {
11}

LZIP Многопользованное сжатие

Существует метод setCompressionThreads в lziparchivesettings. В следующем примере кода показано, как сжать файл с использованием экземпляра Lziparchive.

 1try (fileOutputStream lzFile = new FileOutputStream ("archive.lz")) {
 2    try (fileInputStream Source = new FileInputStream ("data.bin")) {
 3        Lziparchivesettings Settings = новые lziparchivesttings (16777216);
 4        settings.setCompressionThreads (4);
 5        попробуйте (lziparchive archive = new lziparchive (settings)) {
 6            archive.setsource (источник);
 7            Archive.save (lzfile);
 8        }
 9    }
10} catch (ioException ex) {
11}

Четыре потока используются во всех образцах.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.