ソースコードのサイズを最小限に抑えることができるLinuxファイル圧縮ソフトウェアは何ですか?

ソースコードのサイズを最小限に抑えることができるLinuxファイル圧縮ソフトウェアは何ですか?

私はファイル圧縮をたくさんします。圧縮する内容のほとんどはコードだけなので、ロスレス圧縮を使用する必要があります。

7zipよりも良いサイズの縮小を提供できるものがあるかどうか疑問に思います。圧縮または解凍にかかる時間は重要ではありません。サイズが重要です。

Linuxで利用可能なさまざまなツールと圧縮アルゴリズムがテキスト圧縮に関してどのように比較されるかを知っている人はいますか?それとも、ソースコードを圧縮するために7zipが最善の選択ですか?

答え1

アーカイブあなた本物探す,特にソースコードを圧縮したい場合!

読むから引用:

大容量ファイルに最適化された圧縮プログラムです。ファイルが大きく、メモリが多いほど、特にファイルが100 MBを超える場合、圧縮の利点が大きくなります。利点は、サイズ(bzip2よりはるかに小さい)または速度(bzip2よりはるかに速い)から選択できます。 [...] lrzipのユニークな機能は、常にシステムで利用可能なRAMを最大限に活用して最大の利点を得ることです。

lrzip は、まず、rzip ベースのアルゴリズムを使用して長距離データ冗長性を取得および削除する方法で動作します。それから重複していないデータを圧縮します。

Konklivasの礼儀Linuxカーネルメーリングリストの良い例;彼は10.3GBタールボールを圧縮しました。四十Linuxカーネルのバージョンは163.9MB(1.6%)に低下し、xzより高速です。彼は最も攻撃的な2番目のパスアルゴリズムも使用しませんでした!

大きなソースコードターボールを圧縮すると、素晴らしい結果が得られると確信しています:)

sudo apt-get install lrzip

はい(他のオプションにはデフォルト値を使用):

スーパー圧縮、犬の遅い:

lrzip -z file

フォルダの場合は、次のようlrzipに変更します。lrztar

答え2

7zipこれはコンプレッサー(PKZIPなど)ほどコンプレッサーではありません。 Linuxでは使用できますが、通常のファイルの圧縮アーカイブのみを作成できます。たとえば、ストリームを圧縮することはできません。所有権、ACL、拡張属性、ハードリンクなど、ほとんどのUnixファイル属性を保存できません。

Linuxでは、コンプレッサーxz、すでに(LZMA2)と同じ圧縮アルゴリズムを使用しています。7zipこれを使用してtarアーカイブを圧縮できます。

gzipbzip2同様に平行線pixz複数のプロセッサを使用して圧縮されたバリエーションを高速化できます(xzバージョン5.2.0以降、このオプションを使用してデフォルトでこれを実行することも可能です-T)。このpixzバリエーションは以下もサポートしています。索引アーカイブを圧縮しますtar。つまり、最初からファイルを解凍せずに個々のファイルを抽出できます。


脚注

圧縮はアーカイブ+圧縮(インデックスを使用し、個別にメンバー圧縮可能)であり、アーカイブは圧縮を意味しません。これはDOSの問題ではありませんが、フランスの問題かもしれません。 GoogleでUsenetアーカイブを検索してみると、私の文だけが見えるようで、そうではないと思っても私の発明品のようだ。

答え3

(更新された回答)時間が重要でない場合は、ZPAQ v1.10(またはそれ以上)を使用してください。例:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (max.cfgファイルの場所は異なる場合があります。インストールされているパッケージファイルのリストを確認してください)

zpaq実際には以前のアルゴリズムに基づいていますkgb -9 newFileName.kgb yourFileName.tar
PAQ6、そして非常に遅い...
7zip、lrzip、bzip2、kgb..、zpaqなどの他のすべてのコンプレッサーをテストしましたが、最も圧縮されています!


それでも興味があればkgb(これがこの答えの元の選択だったので、ここに情報を残します。)
Ubuntu 14.04KGB 1.0b4、実行sudo apt-get install kgbしてインストールしてください。

以下は、Windowsのバージョンについてです。 Linuxで実行/コンパイルを試すことができますが、kgb成功しませんでした。
バージョン 2 ベータ 2 は以下にあります。ソースフォージしかし、Linuxのバイナリは使用できません。コンソールで実行できますwine kgb2_console.exe -a7 -m9(この方法は-a6 -m91.0b4の最良の方法と同等のように見え、-a72 Beta 2の新機能です)。 .NET 2.0をインストールすることで安定性が向上しましたが、ワインのヒントそしてそれを実行しますwine "KGB Archiver 2 .net.exe"(私はこれが好きではないので、2 Beta 2とほぼ同じ結果を提供するデフォルトのLinux 1.0b4を使います)。
それにもかかわらず、バージョン2ベータ2はLinuxネイティブバージョンを使用する資格があります!たぶんMinGWで何かできるかもしれません。これしかし、このコマンドはまだ真剣に失敗しますi586-mingw32msvc-g++ kgb2_console.cpp -o kgbdmcs(Mono)でコンパイルできますか?バラよりこのヒント

答え4

Z規格話す価値があります。デフォルト設定ではxzほど圧縮されませんが、はるかに高速に圧縮して解凍できます。アーチLinux時代xzからzstdへの切り替え、彼らは報告した

すべてのパッケージの合計パッケージサイズは約0.8%増加しましたが、すべてのパッケージの解凍時間は約1300%高速化されました。

今日は、同じ684Mテキストコーパスを圧縮するためにxzとzstdを使用しました。私はYMMVという厳格なテストを実行していませんが、違いが大きすぎて必要ではないようです。

  • xz71Mで圧縮するのに9分36秒かかり、解凍するのに9秒かかりました。
  • zstd(デフォルトオプション)123Mに圧縮して解凍するのに6秒かかり、2秒未満で解凍しました。
  • zstd -999Mで圧縮するのに42秒かかり、再び解凍するのに2秒もかかりませんでした。
  • zstd -19xzより12分40秒遅いですが、70Mでよりよく圧縮され、まだ2秒未満で解凍されます。

関連情報