解壓縮的速度和什麼有關?

時間 2021-05-11 20:06:26

1樓:雷鵬

對解壓最快的壓縮演算法類別 lz77,記憶體和cpu不會是瓶頸,對於傳統的流式 lz77 演算法,解壓時基本可以保證對記憶體的訪問都是順序的。然而,現在的 NVMe SSD 動輒若干個 GB 的頻寬,記憶體和 CPU 也就變成瓶頸了。

對於 TerarkDB 的全域性壓縮演算法,情況就不太一樣了,這是專門為 DataBase 設計的壓縮演算法,DataBase 對資料的訪問是隨機的,而不是流式的,對應到底層演算法,就會產生大量對記憶體的隨機訪問,所以,瓶頸在於:記憶體頻寬 + tlb miss。

——相對於其它 DB,只有硬體才是 TerarkDB 的上限。

2樓:Horace

就硬體角度來看,解壓縮的速度和CPU、硬碟都有關係。當壓縮率高(基本上是大檔案)的時候,瓶頸在硬碟,這個時候不怎麼消耗CPU;當壓縮率低(有很多零碎的小檔案)的時候,瓶頸在CPU。

測試1:乙個10g的壓縮包(含3部電影,壓縮率99.56%),CPU相同

固態硬碟:100M/s

機械硬碟:65M/s

測試2:乙個120M的壓縮包(含9320個檔案,壓縮率68.51%),硬碟相同

效能高的cpu:20 M/s

效能低的cpu:7 M/s

3樓:sonald

補充一下,我覺得還跟硬碟結構以及檔案系統有關。比如好的解壓軟體應該能夠根據檔案系統儲存元資料,檔案內容的方式,按照機械硬碟的磁軌順序讀取資料和寫入資料

4樓:北極

多數情況下瓶頸在磁碟上。

解壓和壓縮不一樣,解壓的時候CPU負載不高(主要是查字典),CPU負載一般只有壓縮時的一半甚至更低(看具體演算法)。

所以解壓的速度基本上取決於讀取檔案和寫入檔案的速度,也就是磁碟訪問的速度。

解壓時記憶體消耗一般是壓縮時記憶體需求量的10~20%左右,一般來說壓縮比越高,解壓時消耗的記憶體越小。所以同樣的檔案,壓縮能正常進行,解壓也沒問題。解壓消耗的記憶體跟字典大小有關,通常情況下,預設值都不會太大(10MB附近)。

下圖是7-zip顯示的記憶體消耗:

所以就目前而言,絕大多數解壓縮軟體對於硬體的需求是:磁碟》CPU>記憶體。

解壓時要榨乾CPU的唯一辦法是設定乙個大容量的RAM DISK,在虛擬磁碟上做多執行緒解壓操作。

5樓:六隻正在飛的羊

解壓縮就是個查字典的過程,對CPU壓力不大。從吞吐量來說對記憶體要求比硬碟高,但記憶體讀寫速度是硬碟幾十倍到幾百倍,所以瓶頸通常是硬碟的讀寫速度。

為什麼動量 p 與質量 m 和速度 v 有關?

四維超球體 你想想,動量指的是這個物體在它運動方向上保持運動的趨勢 顯然,想改變乙個大質量的物體的運動狀態將會更加困難,想改變乙個高速的物體的運動狀態將也更加困難,所以,動量與質量正相關,動量與速度正相關 所以物理學家就把它定義為 這個問題怎麼說,我以前也想過類似的,但後面發現自己的思維越來越僵化。...

文字的字型種類和閱讀速度有關係嗎?

衛琳 上小學的時候覺得一頁有好多字的密密麻麻的書都讀不下去,注音讀本就讀的很快,不是不認識字,而是一頁實際的文字量比較少,現在雖然不會,但還是不喜歡字型特別小留白少的書,感覺不舒服 字型對閱讀速度 閱讀體驗都會產生影響,以下舉幾個我個人的例子說明 比如Kindle上同樣一頁 字型大小相同 黑體對於文...

為什麼提高客運列車速度會壓縮貨運列車的開行數量?

please毛 提高客運列車速度會壓縮貨運列車的開行數量 這一表述有點不準確。試著想給你說明白,但是發現我的水平不太行,怎麼表述都有點漏洞。給你畫個圖吧,你大致感覺感覺,有漏洞也別挑了。AB兩個車站的發車間隔和到達間隔固定的情況下,出現圖中這個情況之後就會壓縮數量,原來開四列,現在就開三列。總會有同...