6

解凍速度が最も速いbzip2の実装はどれですか?

http://bitbucket.org/james_taylor/seek-bzip2/src/tip/micro-bunzip.cが主張しています

Manuel Novoa III(mjn3@codepoet.org)によるサイズと速度の最適化。ハフマンコードのより効率的な読み取り、合理化されたread_bunzip()関数、およびその他のさまざまな調整。(制限付き)テストでは、x86のbzcatよりも約20%速く、armの場合は約10%速くなります。時間の約2/3がread_unzip()でBurrows-Wheeler変換を逆にするのに費やされていることに注意してください。その時間の多くは、キャッシュミスに起因する遅延です。

多くのキャッシュミスは、いくつかの手法によって最適化される可能性があるため、さらに高速な実装が可能です。

これ(seek-bzip2)には、入力ファイルで簡単に検索できるという興味深い機能もあります。

私のプログラムはbzip2の出力を消費し、(理論的には)ファイルのさまざまな部分でこれを並行して実行できます。したがって、並列bzip2実装も考慮されます。

ありがとう。

4

3 に答える 3

4

比較のhttp://lists.debian.org/debian-mentors/2009/02/msg00135.htmlが少しあります。並列バージョンが考慮されます。

少しもありますhttp://realworldtech.com/forums/index.cfm?action=detail&id=98883&threadid=98430&roomid=2

リンクは、インテルcilk-parallelバージョンのbzip2http://software.intel.com/en-us/articles/a-parallel-bzip2/からのものです

また、Intelのipp-powered bzip2は非常に優れており、IPP(悪影響あり)でbzip2(並列ブロック解凍なし)の一部をopenmp(intel KMP 5)と並列化しようとします。1つまたは2つのスレッドに制限する場合、2.4 core2(ipp "v8"コード)では20 MByte/sの解凍されたストリームが実際に使用されます。

お役に立てれば。

于 2010-09-15T02:00:43.443 に答える
1

lbzip2は良い代替手段です。

sudo apt install lbzip2

lbzip2 -d <archive>
于 2021-04-10T19:30:55.317 に答える
0

マルチプロセッサマシン(AmazonEC2またはDigitalOceanでマルチプロセッサ仮想マシンをスピンするのは簡単です)/大量のRAMを搭載したマシンにアクセスできる場合は、PBZIP2を必ずチェックしてください。

PBZIP2は、pthreadを使用し、SMPマシンでほぼ線形の高速化を実現するbzip2ブロックソートファイルコンプレッサーの並列実装です。


説明のために:私は現在、大きな17Gbファイルを解凍しています。bzip2解凍されたファイルを10Mb/秒の速度で書き込んでいました。PBZIP2は現在160Mb/秒で書き込みを行っています。私はそれをこのように実行しています:

pbzip2 -v -d -k -m10000 file.bz2

つまり、-v冗長な-d解凍-kにより、元のファイル-m1000は10GbのRAMを使用し続けます

これは、DigitalOceanの64GbRAM、20 CPUマシンで実行されており、1時間あたり0.952ドルかかります。:-)

于 2017-03-26T14:16:56.600 に答える