Mehrfädige Unix-Archive in Java

Übersicht

XZ, Bzip2 und Lzip sind unter Linux weit verbreitet. Aufgrund ihrer Blockstruktur können sie in mehreren Threads komprimiert werden. Aspose.ZIP API bietet die Methode setCompressionThreads für alle, um mehrere CPU-Kerne für die Kompression zu nutzen. Die Einstellung auf mehr als einen führt zu einer Komprimierung mit mehreren Kernen, die Einstellung auf einen - die Standardoption - führt zu einer Komprimierung mit einem einzigen CPU-Kern.

XZ Multithreading-Komprimierung

Es gibt eine setCompressionThreads Methode in XzArchiveSettings. Das folgende Code-Beispiel zeigt, wie eine Datei mit einer XzArchive-Instanz komprimiert werden kann.

 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(Quelle);
 8            archive.save(xzFile);
 9        }
10    }
11} catch (IOException ex) {
12}

Bzip2 Multithreading-Kompression

Es gibt eine setCompressionThreads Methode in Bzip2SaveOptions. Das folgende Codebeispiel zeigt, wie eine Datei mit Hilfe der Bzip2Archive-Instanz komprimiert wird.

 1try (FileOutputStream bz2File = new FileOutputStream("archive.bz2")) {
 2    try (FileInputStream source = new FileInputStream("data.bin")) {
 3        try (Bzip2Archiv archive = new Bzip2Archiv()) {
 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}

Lzip Multithreading-Kompression

Es gibt eine setCompressionThreads Methode in LzipArchiveSettings. Das folgende Code-Beispiel zeigt, wie man eine Datei mit Hilfe der LzipArchive-Instanz komprimiert.

 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(Quelle);
 7            archive.save(lzFile);
 8        }
 9    }
10} catch (IOException ex) {
11}

In allen Beispielen werden vier Threads verwendet.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.