访问手机版

扫描体验手机版

游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    400-123-4567

    电子邮件

    2374447282@qq.com
  • 一快游戏APP

    steam生态服务商

  • 扫描二维码

    关注一快游戏抖音号

推荐阅读 更多
up主
Lv.3
第 4 号会员,334活跃度
  • 161发帖
  • 158主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
最近评论
热门专题
精选帖子

有问有答:为什么Steam在下载时会占用非常多的系统资源?

[复制链接]
ppk123 发表于 2020-11-21 09:07:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
很多读者朋友都是Steam的忠实用户,现在宽带的带宽普遍增多了,像200Mbps、500Mbps这样入户的也不少见了,可能很多网速较快的朋友在Steam上下载游戏时会发现自己电脑的CPU占用率很高,难不成下载速度快了CPU会跟不上吗?这是有可能发生的,原因呢,出在Steam的整套下载机制上。

有问有答:为什么Steam在下载时会占用非常多的系统资源?-1.jpg

Steam使用了一套较为复杂的文件下载机制。首先,开发者可以给自己的游戏建立多个仓库,每个仓库中可以存放不同的文件。Steam会根据仓库中的文件内容,形成一份清单,同时将该仓库中的所有文件进行分块,每个块大小约为1MB,为了不让没有购买过该游戏的用户轻松获取到游戏文件,Steam内容系统将每个块都使用LZMA算法进行了压缩,并且使用一个256-bit长度的密钥对文件块进行了AES加密。每个仓库都有一个独一无二的密钥,并且在仓库的清单中记载有原始文件名、文件大小、文件校验值、文件类型和文件区块的元数据,同时还会记载每个区块的ID、校验码、文件位置偏移值和压缩前后的大小。通过这样的设计,Steam能够有效保障整个下载过程是高效的,并且在下载时不会有差错。同时,对于所有Steam用户来说,每个区块文件都是一样的,这也允许CDN存储静态的内容,而不是动态加密的。

有问有答:为什么Steam在下载时会占用非常多的系统资源?-2.jpg

大概就是这样子,把整个仓库的文件给压缩并加密了

在下载一个已经发售的游戏时,Steam是可以第一时间拿到用于解密文件的密钥的,为了节约时间,Steam使用了边下载边解密的办法,而LZMA解压缩(就是7-Zip用的算法之一)和AES解密都是较为吃CPU资源的,这也就是Steam下载速度越快,CPU占用率越高的原因了——因为你同时间要解密的数据量更大了。

有问有答:为什么Steam在下载时会占用非常多的系统资源?-3.jpg

在公司500Mbps的网络环境下,用Steam下载游戏大概会吃掉我这块i7-4770K约50%的占用率,还是很高的

而在下载尚未发售游戏的数据时,也就是在预载游戏时,由于拿不到用来解密数据的Key,Steam会把下载到的数据存到*.csd文件中,在游戏正式发售之后,就会使用拿到的密钥进行解密和解压缩。如果你的存储设备速度慢,而网速较快的话,那确实不如不做预载、直接在正式发售后进行下载。

本文主要参考了SteamDB对Steam下载机制的解读文章,如果各位读者对Steam下载还有别的疑惑的话,欢迎在评论区中提出。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于本站:一快游戏作为steam生态服务商,提供steam资讯、游戏榜单、游戏虚拟产品交易、充值、游戏购买等全套steam服务。欢迎各位steam成员加入。
  • 客服QQ:2374447282
  • steamQQ群:897973787
  • 举报邮箱:2374447282@qq.com
  • 友链商务QQ:835005200

扫描二维码

体验配套手机端

声明:本站不提供任何视听上传服务,所有内容均来自互联网站点所提供的公开引用资源,作品版权归原作者所有 禁止商用 违者必究。

Powered by 一快游戏© 2014-2020