GNU/Linux >> Linux の 問題 >  >> Linux

7za でのマルチスレッドのサポート

-m (圧縮方法の設定) スイッチによる # ZipMultiThread - 7ZIP manual &documentation, mt デフォルトは on です であるため、指定する必要はまったくありません。

ただし、DEFLATE アルゴリズムの 7zip の実装はマルチスレッドをサポートしていません!

すでに発見したように、

7za a archive.zip bigfile

1 つのコアのみを使用します。

しかし .zip ファイルは、すべてのファイルを個別に圧縮します。 いくつかを圧縮する場合

試してみてください

7za a archive.zip bigfile1 ... bigfileN

利用可能なすべての N を使用します

シングルの圧縮を高速化したい場合 ファイルには、次の 2 つの選択肢があります:

<オール>
  • bigfile を分割する チャンクで。

  • 別の圧縮アルゴリズムを使用してください。

    たとえば、7zip の BZip2 アルゴリズムの実装はマルチスレッドをサポートしています。

    構文は次のとおりです:

    7za a -mm=BZip2 archive.zip bigfile
    
  • また、構文エラーは、.zip に LZM アルゴリズムを使用しようとしたために発生します。 容器。それは不可能です。

    .zip の可能なアルゴリズム コンテナは DEFLATE(64)、BZip2、圧縮なしです。

    LZM アルゴリズムを使用する場合は、.7z を使用します 容器。このコンテナは、PPMd、BZip2、DEFLATE、BCJ、BCJ2、および圧縮なしのアルゴリズムも処理します。


    これは古い質問であり、特定の質問に対する回答ではなく、質問の精神に対する回答です (すべてのコアを使用して zip 形式を圧縮する)

    pigz (.zip オプション付きの並列 gzip)

    pigz -K -k archive.zip bigfile txt
    

    これにより、同じ圧縮レベルで 7 倍高速な zip 互換ファイルが得られます。

    単一および複数のコアを使用した zip 互換および非 zip コンプレッサーの簡単な比較。

    Fedora 20 で 1.0gb txt ファイルを圧縮するための i7-2600k での壁時間

    67s (120mb) 7za (zip,1 thread)
    15s (141mb) 7za -mx=4 (zip,1 thread)
    17s (132mb) zip (zip,1 thread)
     5s (131mb) pigz -K -k (zip,8 threads)
     9s (106mb) bsc (libbsc.com) (not zip,8 threads)
     5s (130mb) zhuff -c2 (not zip,8 threads)
     2s (149mb) zhuff (not zip,8 threads)
    

    解凍にかかる時間

    4.2s unzip -t
    2.0s pigz -t
    5.1s bsc d
    0.5s zhuff -d
    

    Linux
    1. Linux –カーネル:名前空間のサポート?

    2. Zipファイルのエンコード?

    3. ライブ圧縮率を示す圧縮プログラム?

    1. LinuxでUnzipを使用する方法

    2. カリ NetHunter の更新

    3. より高い圧縮率で zip ファイルを圧縮する

    1. ユニバーサルエクストラクター?

    2. XfceでのHidpiサポートのステータスは?

    3. Linuxzipコマンド