Многопоточные архивы 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}
Четыре потока используются во всех образцах.