Archives Unix multithread en Java
Aperçu
Les archives
XZ,
Bzip2 et
Lzip sont courantes sous Linux. En raison de leur structure en blocs, ils peuvent être compressés dans plusieurs threads. L’API Aspose.ZIP fournit la méthode setCompressionThreads
pour chacun d’entre eux afin d’utiliser plusieurs cœurs de CPU pour la compression. Le fait de la définir à plus d’un entraîne une compression multi-cœur ; le fait de la laisser à un seul - l’option par défaut - entraîne une compression avec un seul cœur de CPU.
Compression multithread XZ
Il existe une méthode
setCompressionThreads dans XzArchiveSettings
.
L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance XzArchive.
1try (FileOutputStream xzFile = new FileOutputStream("archive.xz")) {
2 try (FileInputStream source = new FileInputStream("data.bin")) {
3 XzArchiveSettings settings = new XzArchiveSettings() ;
4 settings.setCheckType(XzCheckType.Crc32) ;
5 settings.setCompressionThreads(4) ;
6 try (XzArchive archive = new XzArchive(settings)) {
7 archive.setSource(source) ;
8 archive.save(xzFile) ;
9 }
10 }
11} catch (IOException ex) {
12}
Compression multithread Bzip2
Il existe une méthode
setCompressionThreads dans Bzip2SaveOptions
.
L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance 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(source) ;
5 Bzip2SaveOptions options = new Bzip2SaveOptions(9) ;
6 options.setCompressionThreads(4) ;
7 archive.save(bz2File, options) ;
8 }
9 }
10} catch (IOException ex) {
11}
Compression multithread de Lzip
Il existe une méthode
setCompressionThreads dans LzipArchiveSettings
.
L’exemple de code suivant montre comment compresser un fichier en utilisant l’instance LzipArchive.
1try (FileOutputStream lzFile = new FileOutputStream("archive.lz")) {
2 try (FileInputStream source = new FileInputStream("data.bin")) {
3 LzipArchiveSettings settings = new LzipArchiveSettings(16777216) ;
4 settings.setCompressionThreads(4) ;
5 try (LzipArchive archive = new LzipArchive(settings)) {
6 archive.setSource(source) ;
7 archive.save(lzFile) ;
8 }
9 }
10} catch (IOException ex) {
11}
Quatre threads sont utilisés dans tous les échantillons.