所以7zip中有不同的壓縮方式。哪種方法最適合什麼任務?
例如:LZMA 和 LZMA2 之間的一個區別是我可以選擇所有 cpu 核心,而 LZMA 2 核心是最大。
答案1
除非您要在無法處理 LZMA 2 存檔的系統上提取存檔,否則請使用 LZMA 2。
一般來說,大多數現代壓縮演算法提供大致相同的壓縮,並且關於您可以一次使用的核心數量,由您決定要使用多少個。一般來說(除非您要建立大型檔案)沒有理由需要多個檔案。此外,當多個核心進行壓縮時,瓶頸可能會成為硬碟。
答案2
7-Zip(至少截至 2019-09-27)有一個內建的幫助文檔,其中非常非常好地解釋了您可以選擇的各種設定以及一般情況下每個設定的用途。
沒有基準測試結果或任何東西,但它足以給我灌輸一些信心,讓我相信我選擇的是「足夠好」而不是「意外糟糕」的設定。
可透過 7-Zip 檔案管理器以及「新增至存檔」對話方塊取得說明文件。
我發現有用的頁面的“內容”路徑(直接從“添加到存檔”對話框打開)是:
File Manager / Plugins / 7-Zip / Add to Archive Dialog Box
這是壓縮方法部分的粗略複製/貼上:
方法說明
- 拉茲瑪
- 它是 7z 格式的基本壓縮方法。即使是舊版的 7-Zip 也可以解壓縮使用 LZMA 方法建立的檔案。它提供高壓縮比和非常快的解壓縮。
- LZMA2
- 預設壓縮方式為7z格式。 LZMA2是基於LZMA的壓縮方法。它提供了比 LZMA 更好的多線程支援。但在某些情況下壓縮率可能會更差。為了獲得 LZMA2 的最佳壓縮比,請使用 1 或 2 個 CPU 執行緒。如果您使用具有 2 個以上執行緒的 LZMA2,7-zip 會將資料拆分為區塊並獨立壓縮這些區塊(每個區塊 2 個執行緒)。
- 百萬分之一
- Dmitry Shkarin 的 PPMdH 演算法略有改變。通常它為文字檔案提供高壓縮比和高速度。
- 壓縮包2
- 基於BWT演算法的標準壓縮方法。通常它為文字檔案提供高速和相當好的壓縮比。
- 放氣
- ZIP 和 GZip 格式的標準壓縮方法。壓縮比不太高。但它提供了相當快的壓縮和解壓縮。 Deflate 方法僅支援 32 KB 字典。
- 放氣64
- Deflate 演算法的修改版本,具有更大的字典 (64KB)。
答案3
當使用 4 個或更多核心時,Lzma2 速度更快,並且壓縮效果更好。這個文件解釋了這一切。
答案4
該連結可以在 wayback machine 上找到:
https://web.archive.org/web/20221015140740/http://www.maximumcompression.com/data/summary_mf2.php
(重新格式化表格很煩人 - 可能想知道為什麼它不能將 html 表格轉換為其自己的格式)
多檔壓縮基準測試總結
文件類型:多種文件類型(共46種)
此測試中要壓縮的檔案數:510
檔案總大小(位元組):316.355.757
平均檔案大小(位元組):620,305
最大文件(位元組):18,403,071
最小檔案(位元組):3,554
該測試旨在模擬無損數據壓縮器的「真實」性能。此測試集包含不同文件類型的混合,這些文件類型是根據「人們最常使用歸檔器做什麼」來選擇的。測試集應包含數據,並根據普通使用者使用壓縮軟體對這些檔案進行壓縮的頻率進行加權(按集合中檔案的類型和比例)。例如,集合中的 txt 檔案將多於 .ocx 檔案(是的,這是任意的)。該集包含 100 個文件,總大小超過 300 Mb。大集合的想法是過濾掉“噪音”。壓縮器可能在 1 或 2 個檔案類型上表現不佳,但在非常大的集合上它不會造成太大影響。
某些程式(例如 CCM 和 BZIP2)一次只能壓縮一個檔案。對於這些程序,會建立一個包含所有檔案的 TAR 檔案。此 TAR 檔案中的檔案按後綴的字母順序排列,然後是名稱。這些壓縮機的結果在焦油欄中標有“Y”。
測試集由以下文件類型組成:
文件類型) | 描述 | 佔總數的% | 文件數量 |
---|---|---|---|
總有機碳、MBX | 尤多拉信箱 | 12.31 | 16 |
EXE、DLL、OCX、DRV | 執行檔 | 10.99 | 35 |
TXT、RTF、DIC、液化天然氣 | 多種語言的文字文件 | 10.21 | 41 |
影像格式、TIFF格式 | 點陣圖/TIF 影像 | 7.88 | 15 |
紀錄 | 紀錄檔案 | 6.34 | 6 |
網頁瀏覽器、PHP | HTML 文件 | 6.13 | 19 號 |
文件 | MS Word 文件 | 6.08 | 30 |
C、CPP、PAS、DCU | 原始碼 | 6.00 | 235 |
MDB、CSV | 資料庫 | 4.26 | 7 |
高級LP | Windows 說明文件 | 4.23 | 7 |
CBF、CBG | 預壓縮的國際象棋資料庫 | 3.55 | 2 |
音訊格式 | 波浪聲音文件 | 3.45 | 9 |
XLS | XLS 試算表 | 2.41 | 16 |
Adobe Acrobat 文檔 | 1.59 | 6 | |
TTF | True Type 字體 | 1.15 | 15 |
DEF | 病毒定義檔案 | 1.10 | 3 |
JPG、GIF | 影像檔案 | 0.53 | 9 |
CHM | 預壓縮幫助文件 | 0.49 | 2 |
INI、INF | INI文件 | 0.42 | 10 |
其他的 | DAT、JAR、M3D、SYS、PPT、地圖、WP、RLL、RIB.. | 10.88 | 27 |
考慮到它應該是一個“真實世界”測試這一事實,我不會考慮用於最佳壓縮的最佳可能(命令行或 GUI)開關組合,而只會像“普通用戶”那樣測試有限的集合。對於 7-zip,這意味著我將使用 GUI 並選擇 Ultra 壓縮方法(可以使用一些好的命令列開關輕鬆擊敗),WinRar 將使用最大字典大小和可靠存檔等進行測試。 ,並且必須在12 小時內完成壓縮階段。與 MFC 上列出的原始大小相比,壓縮後的大小必須為 50% 或更少。
對於我的單一檔案測試,我收到了很多將壓縮時間添加到表中的請求。由於單文件摘要文件中所述的原因,我沒有這樣做,但我計劃測量這個多文件測試的壓縮時間!我還決定將此測試集設為“非公開”,因此開發人員更難針對此特定測試調整他們的程式。我認為這是獲得“現實生活”性能測試的最公平的方式。
評分系統:產生最低壓縮大小的程序被認為是最佳程序。最有效的(讀取:使用完整)程式的計算方法是,將產生存檔所需的壓縮+解壓縮時間(以秒為單位)乘以存檔大小的冪除以最低測量的存檔大小。分數越低越好。基本想法是,如果X 的壓縮速度是Y 的兩倍,並且X 的壓縮檔案大小比Y 的大小大10%,則壓縮器X 與壓縮器Y 具有相同的效率。正確)
分數_X = POWER(2; ((尺寸_X / 尺寸_TOP) - 1) / 0,1) * 時間_X
和
score_X efficiency score for a certain compressor X
time_X time elapsed by compressor X (comp + decomp time)
size_X archive size achieved with compressor X
size_TOP archive size by top archiver (smallest benchmark result)
根據壓縮尺寸和壓縮時間計算壓縮機效率的公式
「0,1」代表 10%,2 的冪確保結果每差 10%(與頂級壓縮器相比),時間就會加倍,因此任何存檔器(頂級壓縮器除外)都會受到時間損失。頂級壓縮器的分數始終等於其時間值。