C# での Unix アーカイブのマルチスレッド設定
概要
XZ、 Bzip2、 Lzip は Linux では一般的です。ブロック構造により、複数のスレッドで圧縮できます。 Aspose.ZIP API は、圧縮時に複数の CPU コアを利用するための「CompressionThreads」プロパティを提供します。複数に設定すると、マルチコア圧縮が必要になります。 1 のままにする (デフォルトのオプション) と、単一の CPU コアで圧縮されます。
XZ マルチスレッド圧縮
XzArchiveSettings
には
CompressionThreads プロパティがあります。
次のコード例は、XzArchive インスタンスを使用してファイルを圧縮する方法を示しています。
手順: C# でマルチスレッド圧縮 XZ アーカイブを作成する
- FileMode.Create を使用して XZ アーカイブのファイル ストリームを開き、圧縮データを書き込みます。
- FileMode.Openでソースファイル(data.bin)を開き、圧縮対象データとして設定します。
- 以下を指定して、XzArchiveSettings のインスタンスを作成します。
- 整合性検証のため、CheckType を Crc32 にします。
- マルチスレッド圧縮の場合、CompressionThreads を 4 に設定します。
- XzArchive のインスタンスを作成し、上で作成した設定を渡します。
- SetSource を使用して、圧縮用のソース ファイルを割り当てます。
- Save メソッドを使用して、圧縮された XZ アーカイブを保存します。
1using (FileStream xzFile = File.Open("archive.xz", FileMode.Create))
2{
3 using (FileStream ソース = File.Open("data.bin", FileMode.Open, FileAccess.Read))
4 {
5 var settings = new XzArchiveSettings() { CheckType = XzCheckType.Crc32、CompressionThreads = 4 };
6 (var archive = new XzArchive(設定)) を使用します
7 {
8 archive.SetSource(ソース);
9 archive.Save(xzFile);
10 }
11 }
12}
Bzip2 マルチスレッド圧縮
Bzip2SaveOptions
には
CompressionThreads プロパティがあります。
次のコード例は、Bzip2Archive インスタンスを使用してファイルを圧縮する方法を示しています。
手順: C# で最大の圧縮とマルチスレッドを備えた Bzip2 アーカイブを作成します< /strong>
- FileMode.Create を使用して Bzip2 アーカイブのファイル ストリームを開き、圧縮出力を保存します。
- 非圧縮データを読み取るために、FileMode.Open および FileAccess.Read を使用してソース ファイル (data.bin) を開きます。
- Bzip2Archive のインスタンスを作成し、SetSource メソッドを使用して圧縮用のソース ファイルを割り当てます。
- Save メソッドを使用してデータを Bzip2 アーカイブに圧縮し、以下を渡します。
- Bzip2SaveOptions(9) は最大圧縮レベルを設定します。
- マルチスレッド圧縮の場合は CompressionThreads を 4 に設定します。
1 using (FileStream bz2File = File.Open("archive.bz2", FileMode.Create))
2 {
3 using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
4 {
5 using (Bzip2Archive archive = new Bzip2Archive())
6 {
7 archive.SetSource(source);
8 archive.Save(bz2File, new Bzip2SaveOptions(9) { CompressionThreads = 4 });
9 }
10 }
11 }
Lzip マルチスレッド圧縮
XzArchiveSettings
には
CompressionThreads プロパティがあります。
次のコード例は、XzArchive インスタンスを使用してファイルを圧縮する方法を示しています。
手順: C# でカスタム辞書サイズとマルチスレッドを使用して Lzip アーカイブを作成する1. FileMode.Create を使用して Lzip アーカイブのファイル ストリームを開き、圧縮出力ファイルを作成します。 2. 非圧縮データを読み取るために、FileMode.Open および FileAccess.Read を使用してソース ファイル (data.bin) を開きます。 3. LzipArchiveSettings のインスタンスを作成し、辞書サイズを 16777216 バイト (16 MB) に指定し、CompressionThreads = 4 でマルチスレッドを有効にします。 4. 上記で定義した設定を使用して LzipArchive のインスタンスを作成します。 5. SetSource を使用して、圧縮用のソース ファイルを割り当てます。 6. Save メソッドを使用してアーカイブを圧縮して保存し、出力 Lzip ファイル ストリームを渡します。
1 using (FileStream lzFile = File.Open("archive.lz", FileMode.Create))
2 {
3 using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
4 {
5 var settings = new LzipArchiveSettings(16777216) { CompressionThreads = 4 }
6 using (LzipArchive archive = new LzipArchive(settings))
7 {
8 archive.SetSource(source);
9 archive.Save(lzFile);
10 }
11 }
12 }
すべてのサンプルで 4 つのスレッドが使用されています。