Багатопотокові архіви UNIX на Java
Огляд
Xz, bzip2 та lzip поширені в Linux. Завдяки їх блоковій структурі їх можна стиснути в декількох потоках. Aspose.zip API надає метод “setCompressionThreads” для всіх них для використання декількох ядер процесора при стисненні. Встановлення його на більше одного тягне за собою багато основного стиснення; Залишаючи його - параметр за замовчуванням - призводить до стиснення з одиночним ядром процесора.
xz багатопотокове стиснення
Існує метод
setCompressionThreads у xzarchivesettings
.
Наступний приклад коду показує, як стиснути файл за допомогою екземпляра Xzarchive.
1спробуйте (fileOutputStream xzfile = новий fileOutputStream ("archive.xz")) {
2 спробуйте (fileInputStream outer = новий FileInputStream ("data.bin")) {
3 Налаштування Xzarchivesettings = нові xzarchivesettings ();
4 settings.setchecktype (xzchecktepe.crc32);
5 settings.setCompressionThreads (4);
6 спробуйте (xzarchive Archive = новий xzarchive (налаштування)) {
7 Archive.setsource (джерело);
8 Archive.save (xzfile);
9 }
10 }
11} улов (IOException ex) {
12}
BZIP2 багатопотокове стиснення
Існує метод
setcompressionthreads у bzip2saveOptions
.
Наступний приклад коду показує, як стиснути файл за допомогою екземпляра Bzip2archive.
1спробуйте (FileOutputStream BZ2File = новий FileOutputStream ("Archive.bz2") {
2 спробуйте (fileInputStream outer = новий FileInputStream ("data.bin")) {
3 спробуйте (Bzip2archive Archive = new Bzip2archive ()) {
4 Archive.setsource (джерело);
5 BZIP2SAVEOPTIONS ПАРТІЇ = нові BZIP2SaveOptions (9);
6 Options.setCressionThreads (4);
7 Archive.save (BZ2File, варіанти);
8 }
9 }
10} улов (IOException ex) {
11}
LZIP багатопотокове стиснення
Існує метод
setCompressionThreads у lziparchivesettings
.
Наступний приклад коду показує, як стиснути файл за допомогою екземпляра Lziparchive.
1спробуйте (FileOutputStream Lzfile = новий FileOutputStream ("archive.lz")) {
2 спробуйте (fileInputStream outer = новий FileInputStream ("data.bin")) {
3 Налаштування Lziparchivesettings = нові LziparchiveSettings (16777216);
4 settings.setCompressionThreads (4);
5 спробуйте (Lziparchive Archive = новий lziparchive (налаштування)) {
6 Archive.setsource (джерело);
7 Archive.save (Lzfile);
8 }
9 }
10} улов (IOException ex) {
11}
У всіх зразках використовуються чотири потоки.