zstdgo語言,zstd golang

zstd,未來可期的數(shù)據(jù)壓縮算法

最近了解到了 zstd 這種新的壓縮算法。不像lz4,lzo,snappy等近幾年流行的壓縮算法專注于壓縮和解壓縮性能,zstd在性能不錯(cuò)的同時(shí)號(hào)稱壓縮率跟Deflate(zip/gzip的算法)相當(dāng)。下面是 官網(wǎng) 列出的數(shù)據(jù):

創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、寧蒗網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為寧蒗等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

我們知道,壓縮算法的效果和性能跟被壓縮的數(shù)據(jù)類型和模式有很大的關(guān)系,光看別人的測試數(shù)據(jù)、benchmark是不夠的。正好有功能開發(fā)需要,于是結(jié)合我們的使用場景真實(shí)測試的一下。

驚喜的是,實(shí)測的結(jié)果比官方提供的還好,終于找到了我們的cup of tea。

Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, 8G內(nèi)存

CentOS 7.0

對幾種支持流式寫入的壓縮算法,使用對應(yīng)的命令行工具進(jìn)行壓縮測試。

除了snappy,各種壓縮算法/工具都支持設(shè)置壓縮級(jí)別,高級(jí)別意味著以更長的壓縮時(shí)間換取更高的壓縮率。

100萬行不重復(fù)的某個(gè)應(yīng)用的日志文件,大小為977MB。

從上面可以看出:

zstd無論從處理時(shí)間還是壓縮率來看都占優(yōu)。snappy, lz4, lzo的壓縮率較低,但壓縮速度都很快,而zstd甚至比這些算法更快。Gzip的壓縮率比lz4等高不少,而zstd的壓縮率比gzip還提升一倍。

如果從上面的比較還不是特別直觀的話,我們再引入一個(gè)創(chuàng)造性的指標(biāo)(從網(wǎng)上其他壓縮算法對比沒有見過使用這項(xiàng)指標(biāo)):

代表單位處理時(shí)間可以壓縮去掉多少冗余數(shù)據(jù)。其中 權(quán)重系數(shù) 用來指定壓縮率和壓縮速度哪個(gè)更重要,這里我們認(rèn)為在我們的使用場景里兩者同樣重要,取系數(shù)為1。

從這里我們可以明顯看出, zstd lz4 lzo snappy 其他 。

對1000行、大小約為1MB的文件進(jìn)行壓縮測試,各種算法的壓縮率跟1GB大文件的壓縮率幾乎一樣。

下面再對更小的數(shù)據(jù)量——10行日志數(shù)據(jù)的壓縮率進(jìn)行對比。雖然我們的使用場景里沒有對小數(shù)據(jù)量的壓縮處理,但還是比較好奇zstd字典模式的效果。

其中最后一組數(shù)據(jù)為zstd使用10000行日志進(jìn)行訓(xùn)練生成字典文件,并利用字典文件輔助壓縮測試數(shù)據(jù)。

可以看出來,除了zstd字典模式外,各種壓縮算法在處理更小的數(shù)據(jù)量時(shí)壓縮率都下降很多。而zstd字典模式對壓縮率帶來幫助非常明顯,與gzip對比,壓縮率從1000行時(shí)相差1倍,到10行時(shí)變?yōu)榱讼嗖罱咏?倍。

下一篇文章將給大家對比這幾種算法的golang開源庫的性能和壓縮率。敬請期待。

新聞標(biāo)題:zstdgo語言,zstd golang
網(wǎng)頁URL:http://muchs.cn/article8/hcipip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站微信小程序、ChatGPT、網(wǎng)站營銷、外貿(mào)建站云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營