前文恕刪
yeeouo : 解壓縮是單線程吧 09/25 11:35
→ yeeouo : 包括7zip軟體都是單線程解壓縮 09/25 11:36
a12550550 : WinRar有支援多核心吧? 09/25 11:49
→ JoyRex : 解壓縮不吃多核心啊 09/25 11:53
雖然印象中7-zip(LZMA2)的多核心支援度比RAR好很多
但我記得解壓縮也是有支援多核的
剛才為了驗證推文「解壓縮只用到單執行緒」的說法
似乎與實際經驗不符
馬上切了一個32G的RAMDISK來測試
首先來測大檔
測試檔案為繁體中文的Windows 10 business X64版的ISO
版本號為1903, 1909, 2004(含五月的更新檔)
未壓縮前的總容量為14.1GB
https://i.imgur.com/syDc2cF.png
使用7-zip LZMA2 極緻壓縮
壓縮後的7z檔案容量為13.3GB
https://i.imgur.com/nGuAhkV.png
接著重點:
為了避免SSD效能不足的問題干擾測試變因
把壓縮後的7z檔案放在RAMDISK內
接著就是實際測試解壓縮至當前目錄的動作
實測解壓縮時間約11秒,速度約1.41GB/s
https://i.imgur.com/EiHQq8P.png
自工作管理員可以看到
至少約8個執行緒的瞬間CPU使用率升高
https://i.imgur.com/CKVRKoj.png
只不過因為解壓縮的速度實在太快
所以只能看到短暫的CPU使用率上升就是
接著測試4k小檔案的部份
測試檔案為個人好幾年前整理的如●群○合集
請各位太太不要吐槽我拿這個來測試
剛才把硬碟裡面的檔案完整翻了一遍
手上大量小檔的資料夾就只剩這個
總之這是學術研究!再重複一次這是學術研究!!
壓縮前的資料夾大小為1.09GB
https://i.imgur.com/D3L5Glc.png
壓縮後的7z大小為1.06GB
https://i.imgur.com/XMNzRl5.png
JPG的壓縮率果然都不太好看吶...
實測解壓縮時間約6秒,速度約218MB/s
https://i.imgur.com/E2SkxlW.png
所以結論就是:流言終結
7-zip 支援多執行緒解壓縮
而且至少支援8個執行緒
解壓縮速度
與壓縮檔內的檔案大小有著非常大的關系
大檔可以跑到 1GB/s以上
小檔則約為 200MB/s以上
個人推測這之間的差異
應該是礙於儲存設備的效能問題
意即瓶頸是儲存設備(ex:HDD, SSD, Ramdisk etc...)
小檔解壓縮速度完全不及大檔解壓
速度上限可能是解壓縮目錄的4k效能上限
另外雖然不太確定RAR的實際狀況
但如果RAR的解壓縮也有支援多執行緒的話
那麼RAR解壓縮的瓶頸應該也是在SSD上頭才對
如果有大量檔案解壓縮的需求
高速SSD或是RAMDISK可能是唯二的手段
CPU的效能感覺反而是第二順位
備註:
老實說這個測試實其沒有很精確
前後花了不到20分鐘做測試的閒聊等級
而且礙於主機記憶體的容量不夠大
沒辦法切更大的RAMDISK來測試
所以7-zip是否支援超過8個執行緒解壓縮
則要看板上有沒有32G*4 or *8插好插滿的太太滿測試了
以上
mayolane : 7Zip成績幾乎都是Zen2表現比較好 09/25 11:54
→ arrenwu : 從這圖看起來 7z解壓縮吃多核心啊 09/25 12:05
7-zip作者Igor Pavlov有提過因為LZMA演算法的關系,AMD Ryzen家族的壓縮效率
會比同級的Intel略快一點
解壓縮就沒特別說明過
→ JoyRex : 7-z的壓縮和解壓縮相對rar是比較有用到多核心就是 09/25 12:16
→ JoyRex : 不過RAR有糾錯回復的機制所以比較沒用7-z就是了 09/25 12:17
糾錯回復真的是RAR的強項→ yeeouo : 7z解壓真的有多核嗎 我之前還查stack系列網站 最佳 09/25 12:37
→ yeeouo : 解答是說解壓縮io比較重要 多核心沒必要所以不支援 09/25 12:37
→ yeeouo : 我用7z解壓也一直都是單核阿 09/25 12:37
→ yeeouo : 不過現在固態硬碟很快 常常單核心100%就是 09/25 12:42
有支援多核喔至少吃8個執行緒
會有只吃單核的錯覺,通常都是檔案不夠大
或是有防毒軟體介入導致解壓縮程式發呆的關系
--