专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

解压缩操作为什么不吃CPU_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 1:28:14       共计:3629 浏览

解压缩操作为什么不吃CPU?

解压缩文件和压缩文件不同,解压缩过程需要不断读取压缩文件,并把解压出来的文件写到磁盘,这个过程中最主要是依赖CPU性能,但是也需要占用大量磁盘资源,我们经常遇到在解压一些好几G的大文件中,电脑运行会变得比较卡顿,这就是由于产生大量的磁盘IO导致的。

解压缩任务对CPU、内存和硬盘都有要求,其中性能要求占比最大的是CPU,按照水桶原理的说法,主流机械硬盘的读写速度在150m/s左右,而SATA固态硬盘也仅仅是400-500m/s,与CPU和内存速度差距甚远,磁盘形成短板,而且解压缩一般为单线程运算,对CPU性能要求并不太高,所以如果在电脑CPU性能不是太弱的情况下,就会出现CPU占用率上不去,磁盘反应变卡的情况(尤其是解压存在大量小文件的压缩包)

除此之外,解压占用CPU资源的高低也与采用的压缩格式有关,如果采用高压缩率格式比较吃CPU,低压缩率则吃硬盘,估计题主是采用了低压缩率格式的大文件压缩包,因为在大文件连续读写过程中,机械硬盘与SATA固态硬盘差距并不太明显,如果压缩包内是大量如图片之类的小文件,在解压中两个硬盘就会出现明显的速率差距。

如果是机械硬盘和NVME固态对比的话,即使解压一个视频文件压缩包也会出现比较大的差距。

在下图NVME固态上,I5 8250U的CPU占用率能达到20%以上,大约2秒就解压完毕,而在机械硬盘上,同样的配置下耗时达到7秒多,然而CPU占用率仅有10%左右,磁盘占用率几乎占满,性能瓶颈出现在机械硬盘上。

嘟嘟说:所以说很多情况下不是CPU不想发挥性能,而是解压缩过程中磁盘限制了CPU的性能发挥,CPU必须等待磁盘数据,即使固态硬盘很多情况下也是喂不饱CPU,导致CPU占用率很低;但是在处理高压缩率的文件下,CPU的占用率就会变得较高。

其实最大的瓶颈还是在于解压缩软件在解压过程中仅仅支持单线程,这样就导致四核CPU即使一个核心占满,也不过是25%占用率,显的CPU占用率不高,期待今后的压缩软件算法能够实现解压缩并行化处理。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:哪位回答我一下外包安不安全_java | ·下一条:局域网服务器搭建及管理平台_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有