学到了(压缩软件解压速度)解压缩软件速度对比,解压缩的速度和什么有关?,

这是一个繁杂的难题,先单纯提问呵呵,都相亲密关系,具体内容和整座控制系统相关。

通常而言而言填充和Cogl缩都是排序专门化。但控制系统的困局具体内容在哪里根据具体内容的控制系统和具体内容应用展开分析。Cogl的过程如下表所示图:

硬碟———-(1)———-> (2)缓存+CPU———–(3)———–>缓存

CPU 先从硬碟中加载文档,接着在缓存中展开Cogl,接着将Cogl的文档写到缓存中,这里主要关注3个部分的操控性。

(1). 硬碟取统计数据以及硬碟统计数据统计传输到缓存的操控性

(2). CPUCogl的操控性

(3). Cogl统计数据统计传输到缓存的操控性

先说(3) 对那时的排序机控制系统,通常伺服器单厢有几百G的耗电量和几百GB/s的缓存频宽,此种情况下缓存耗电量和缓存频宽是不足以支持Cogl而不正式成为困局的。

反正(2), 关于Cogl的操控性我们能通过把文档开卡到缓存中展开试验,以须建硬碟正式成为困局的影响,Cogl操控性和具体内容的演算法和统计数据相关。通常而言而言位元率高的Cogl慢,位元率低的Cogl快(位元率=未填充大小不一/填充后大小不一)。比如google的snappy演算法google/snappy),在core i7上,R5操控性能够达至500MB/s。生前做的试验多个试验大部分也能达至百MB/s的等级即使GB/s等级。对位元率Villamblard的填充演算法像GZIP,Cogl速率会较高,但也能达至100MB/s。到加进CPU的多核多处理器时,操控性会有所提升。具体内容的Cogl速率能就行了参照找篇学术论文参照呵呵(比如:Sitaridi E, Mueller R, Kaldewey T, et al. Massively-parallel lossless data decompression[C]//Parallel Processing (ICPP), 2016 45th

International Conference on. IEEE, 2016: 242-247.),我找个图贴呵呵

最后说说(3),通常情况下硬碟(机械硬盘)会正式成为控制系统的困局。通常而言SATAUSB的硬盘统计传输率只有几百M/s,即使是弄成RAID,也是极难达至GB/s的等级。对照于多核CPUCogl操控性,硬盘取数和统计传输往往会正式成为困局。但对液态盘而言,PCIeUSB的能达至GB/s的等级。再经过统计数据重新组合和高速USB(PCIe GEN4或者OpenCAPI)相连,速率即使能达至25GB/s,在此种情况下,CPU也就正式成为困局了。

那时有很多用FPGA/GPU 快速Cogl演算法的,都是为了解决CPU排序困局的难题,当然这是如前所述统计资料库转为缓存和NVMe的背景下的。再者为什么CPU会慢,这是和演算法相关。很多演算法需要很繁杂的基元演算法,很多演算法搜寻的语句具有强倚赖亲密关系,很多演算法会引起频密的cache miss和TLB miss。没事再更。。。