JavaのマルチスレッドUNIXアーカイブ
概要
xz、 bzip2および lzipはLinuxで共通しています。ブロック構造により、それらはいくつかのスレッドで圧縮される可能性があります。 Aspose.Zip APIは、すべてのものに「setCompressionThreads」メソッドを提供して、圧縮時にいくつかのCPUコアを利用します。複数のコア圧縮を伴うことを伴います。 1つを残す - デフォルトオプション - は、単一のCPUコアでの圧縮につながります。
XZマルチスレッド圧縮
[xzarchivesettings `に setCompressionThreadsメソッドがあります。 次のコード例は、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}
bzip2マルチスレッド圧縮
setCompressionThreadsメソッドが「bzip2saveoptions」にあります。 次のコード例は、BZIP2RACHIVEインスタンスを使用してファイルを圧縮する方法を示しています。
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}
lzipマルチスレッド圧縮
[lziparchivesettings」には setCompressionThreadsメソッドがあります。 次のコード例は、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}
すべてのサンプルで4つのスレッドが使用されています。