C# での Unix アーカイブのマルチスレッド設定

概要

XZBzip2Lzip は Linux では一般的です。ブロック構造により、複数のスレッドで圧縮できます。 Aspose.ZIP API は、圧縮時に複数の CPU コアを利用するための「CompressionThreads」プロパティを提供します。複数に設定すると、マルチコア圧縮が必要になります。 1 のままにする (デフォルトのオプション) と、単一の CPU コアで圧縮されます。

XZ マルチスレッド圧縮

XzArchiveSettings には CompressionThreads プロパティがあります。 次のコード例は、XzArchive インスタンスを使用してファイルを圧縮する方法を示しています。

手順: C# でマルチスレッド圧縮 XZ アーカイブを作成する

  1. FileMode.Create を使用して XZ アーカイブのファイル ストリームを開き、圧縮データを書き込みます。
  2. FileMode.Openでソースファイル(data.bin)を開き、圧縮対象データとして設定します。
  3. 以下を指定して、XzArchiveSettings のインスタンスを作成します。
    • 整合性検証のため、CheckType を Crc32 にします。
    • マルチスレッド圧縮の場合、CompressionThreads を 4 に設定します。
  4. XzArchive のインスタンスを作成し、上で作成した設定を渡します。
  5. SetSource を使用して、圧縮用のソース ファイルを割り当てます。
  6. 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.Crc32CompressionThreads = 4 };
 6        (var archive = new XzArchive(設定)) を使用します
 7        {
 8            archive.SetSource(ソース);
 9            archive.Save(xzFile);
10        }
11    }
12}

Bzip2 マルチスレッド圧縮

Bzip2SaveOptions には CompressionThreads プロパティがあります。 次のコード例は、Bzip2Archive インスタンスを使用してファイルを圧縮する方法を示しています。

手順: C# で最大の圧縮とマルチスレッドを備えた Bzip2 アーカイブを作成します< /strong>

  1. FileMode.Create を使用して Bzip2 アーカイブのファイル ストリームを開き、圧縮出力を保存します。
  2. 非圧縮データを読み取るために、FileMode.Open および FileAccess.Read を使用してソース ファイル (data.bin) を開きます。
  3. Bzip2Archive のインスタンスを作成し、SetSource メソッドを使用して圧縮用のソース ファイルを割り当てます。
  4. 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 つのスレッドが使用されています。

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.