私は通常、7-ZipよりもWinRARを使用しています。7-ZipとWinRARのデフォルト設定を通常の圧縮と最良の圧縮で比較してみたところ、多くの場合、WinRARの方が50%速く、中には100%速くなったものもありました。しかし、私はFOSSの方が好きです。そこで私の質問です
- 7-Zipを高速化する方法はないのでしょうか?せめてWinRAR並みの速度にしてほしいです
- WinRARでできるように7-Zipでリカバリーセグメントを作る方法はないのでしょうか?見当たりませんでしたが、コマンドラインでも良いのではないでしょうか
- WinRARと7-Zipをそれぞれ最新の安定版(7-Zipの4-dot-something)を使ってテストしてみました。9.xベータ版のリリースは圧縮時に顕著に速いですか?
WinRARで同等の設定で速くなるという話であって、むき出しの最小圧縮に下げるだけではありません
重要なことであれば、私はクアッドコアのIntel i7 720 (1.6 GHz)/(2.8 GHz)と4 GBのDDR3 RAMと7-Zipの64ビット版を使用し、Debian x64 5.0.4とWindows 7 Homeをデュアルブートしています
38 Kefka 2010-04-17
7-Zip 9.13 beta を取得した場合、アーカイブタイプを LZMA2 に変更することができます
ベータ版をインストールして、アーカイブしたいものを右クリックして、7-Zipのメニューから “Add to archive… “をクリックしてください。左側の圧縮方法の下にある “LZMA2 “を見つける必要がありますが、これはあなたがもう少し下のオプションになりますスレッドの数を変更することができます
これは、お使いのシステムに合わせてより良いチューニングが可能であり、通常の圧縮方式では最大2スレッドしか処理できないため、2コアプロセッサのパフォーマンスを大幅に向上させる可能性があります
画像のスレッド数選択ボックスの右側に表示されている「/1」は、お使いのシステムのプロセッサの数であり、推奨スレッド数です。私のi7はクアッドコアプロセッサですが、ハイパースレッディングを搭載しています(これは実際にはここでも役立ちます)ので、”/8 “と表示されています
36 Mokubai 2010-05-25
各スレッドが同時に複数のファイルを圧縮しているようなので、非常に大きなZIPジョブのパフォーマンスを向上させるためにできる最善のことは、ハードドライブが一度に1つのファイルをシークするように、スレッドを1に設定することです
7-zipコマンドラインに-mmt=off
を追加することで、日常的に行っているzipバックアップの全手順のパフォーマンスを向上させています。複数の小さなファイルから作られている「visual SVN リポジトリ」のバックアップには、50分から60分かかっていました
-mmt=off
を使うと、いつも5分以内に終わるようになりました。そして、この50分間の間、すべてのサーバはハードドライブを探していたため、非常に遅くなっていました。今では、この5分間の間、すべてが非常に速いままです
マシン上で行うすべてのことに対して、ハードドライブのアクティビティは常にCPUの容量よりも遅くなります。並列アクティビティを無効にして、ハードドライブがファイルを1つずつシリアルに読み書きするようにすることで、ディスクのパフォーマンスを向上させることができます
また、物理ヘッドは読み込みから書き込みに移行しないので、ディスク1から読み込んでディスク2にZIPを書き込んだ方が良いでしょう
マシンの性能を維持しつつ、ZIPの最大速度を得るためのサンプルライン
start "" /wait /belownormal c:\Progra~1\7-Zip\7z.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*
D:
とT:
は2つの異なる物理ディスクです
34 Frederic Malenfant 2013-02-12
私の会社では、古いバージョンの7-zip(4.52 beta)で作業をしており、以下のコマンドを実行しています
"C:\Program Files\7-Zip\7z.exe" a -mx7 -mmt -sfx -xr!*.<exclude_extension> <destination>.exe <source_directory>\*
これは問題なく動作していますが、新しいバージョンの16.04(32ビット)にアップグレードしたばかりなのに、パフォーマンスが大幅に落ちてしまったので、古いバージョンにダウングレードすることにしました
0 Dominique 2017-05-09
この例のようなコードを使用した場合のパフォーマンスを向上させるためのもう一つのちょっとしたコツがあります
$7zip = "$env:ProgramFiles\7-Zip\7z.exe"
set-alias sz $7zip
$FileZip = "$DiscoZip\temp\$TempFile"
foreach ($DirData in $ListDir) { $out7z = (sz a $FileZip $DirData) }
は、可能であれば、$ListDir の配列に最小のものから最大のものまで、サイズ別にディレクトリをリストアップします。これは、7zip が各 foreach サイクルで元のファイルよりも大きい (または大きい) 一時ファイルを作成し、その中に新しいファイルを追加するために起こります。私は、いくつかのMBの大きなディレクトリと何GBもの大きなディレクトリが2つ以上ある場合に試してみましたが、時間の節約には数分程度の時間がかかりました
0 Max Monterumisi 2018-10-19
私の推測では、7-Zip の高速化は圧縮/解凍アルゴリズムの書き換えなしでは不可能で、速度を向上させる微調整があるかもしれませんが、それはおそらく 10 か 15% の増加に過ぎず、あなたが求めている 50-100% の大規模な増加ではないでしょう
-1 Joshkunz 2010-04-17
最近使った圧縮アルゴリズム(ZIP, RAR, 7z, tar/bzip2)はすべてI/Oバインドで、CPUバインドではありません。Mac のラップトップで MenuMeters を見ていると、一定のディスクアクティビティを示していますが、CPU のアクティビティは 50% 以下しかありません
このように、圧縮/解凍を高速化する方法は、ディスクを高速化することです。これは必ずしも可能ではありません
私の「解決策」は、何かを圧縮している間に他のことをすることです。)
-1 chrish 2010-05-25