概要

私たちのライブラリでは、一部の形式でマルチストリーム圧縮が可能です。これにより、データ圧縮の速度が大幅に向上します。

BZIP2、LZIP、および XZ アーカイブの並列化

圧縮スレッドの数は、対応する設定クラスの「圧縮スレッド」プロパティを通じて設定できます。デフォルト値は 1 であるため、圧縮は単一のスレッドで実行されます。ただし、1 より大きい値を設定すると、アルゴリズムは対応する数のプロセッサ コアを使用します。

Parallel compression to BZIP2

    save_options =  zp.bzip2.Bzip2SaveOptions()
    save_options.compression_threads = 4
    with zp.bzip2.Bzip2Archive() as archive:
        archive.set_source("data.bin")
        archive.save("archive.bz2", save_options)

Parallel compression to LZIP

    # Will use 16Mb for dictionary:
    settings = zp.lzip.LzipArchiveSettings(0x1000000)
    settings.compression_threads = 4
    with zp.lzip.LzipArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.lz")

Parallel compression to XZ

    settings = zp.xz.settings.XzArchiveSettings()
    settings.compression_threads = 4
    with zp.xz.XzArchive(settings) as archive:
        archive.set_source("data.bin")
        archive.save("archive.xz")

これらの例では、Python コード スニペットはアーカイブを作成するために同様のアクションを実行しますが、使用される圧縮形式のみが異なります。通常、次の手順に従います。

  • アーカイブ形式に固有の設定オブジェクトを作成します。
  • 圧縮用の並列ストリーム数を設定します。
  • アーカイブ オブジェクトが作成されます。のコンテキスト内で、操作の完了後にアーカイブが自動的に閉じられるようにします。
  • アーカイブに追加するデータ ソースを指定します。
  • 次を使用して、アーカイブを適切な形式で保存します。構成された設定。

7Z アーカイブの LZMA2 圧縮とマルチスレッド

この例では、data.bin ファイルを使用して 7z アーカイブを作成する方法を示します。 4 つのストリームを持つ LZMA2 圧縮アルゴリズムを使用して、データを効率的に圧縮します。

Parallel compression to 7Z LZMA2

    compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
    compression_settings.compression_threads = 4
    entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
    with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
        archive.create_entry("data.bin", "data.bin")
        archive.save("result.7z")

このコードは、Bzip2、Lzip、または XZ の設定の代わりに SevenZipLZMA2CompressionSettings と、圧縮に 4 つのスレッドを使用する LZMA2 圧縮アルゴリズムを使用して、data.bin ファイルからデータを読み取ることによって 7z アーカイブを作成します。 set_source メソッドの代わりに、SevenZipArchive の create_entry メソッドを使用します。

並列圧縮による ZIP アーカイブの高速化

ZIP アーカイブの作成は、エントリ レベルで並列化できます。これを行うには、ParallelOptions インスタンスとそのプロパティを使用します。

    parallel_opt = zp.saving.ParallelOptions()
    parallel_opt.parallel_compress_in_memory =  zp.saving.ParallelCompressionMode.AUTO
    save_opt =  zp.saving.ArchiveSaveOptions()
    save_opt.parallel_options = parallel_opt
    with zp.Archive as archive:
        archive.create_entries("~/Data")
        archive.Save("archive.zip", save_opt)

主な機能は次のとおりです。

  • ParallelOptions を使用してメモリ内並列圧縮を構成します。
  • 一般的な保存設定に ArchiveSaveOptions を使用します。
  • create_entries メソッドを使用してファイルを追加します。 ~/Data ディレクトリをアーカイブにコピーします。
ParallelCompressionMode 列挙値の意味をより深く理解するには、ドキュメントを参照してください。これらの値を調整して、目的とハードウェア構成に明示的に最適な結果を導き出します。

サポートされているその他の Aspose.ZIP for Python.Net API 機能

Python.Net の Aspose.ZIP ライブラリを使用すると、ZIP ファイル ドキュメントに関連するさまざまなタスクをシームレスに処理できます。形式の変換、ファイルの結合、コンテンツの編集、またはデータの抽出が必要な場合でも、Aspose.ZIP はワークフローを合理化し、生産性を向上させるための包括的な機能を提供します。

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: