我刚刚下载了一款大约 2GB 的电脑游戏。我的下载速度非常快,几乎达到 30mbps。但是当我在电脑上安装游戏时,为什么速度会这么慢?我的意思是,我不明白下载过程,因为所需的文件夹在眨眼间就下载好了,但安装速度甚至不到 10mbps。我应该知道内存上发生了什么吗?文件写入内存的哪个位置,或者它们是否均匀?安装过程不必像下载一样快吗?感谢您的回答。
答案1
你在谈论两件不同的事情:安装和下载。
下载是通过网络将数据从一台计算机传输到另一台计算机的过程。决定下载速度的是网络性能:
- 两台计算机和所有网络通过点的连接速度有多快。
- 目前网络频道有多繁忙。
- 系统的整体性能也会影响下载速度。
下载主要涉及网卡和存储设备的活动。
安装是设置软件以便系统能够正确使用它的过程。此过程主要涉及处理和存储设备活动。决定其发生速度的因素有:
- CPU 性能。
- 存储设备性能。
- RAM 的数量也起着至关重要的作用。
在大多数情况下,大型程序的安装将花费更长的时间,因为安装过程涉及解压安装包、将其内容复制到目标文件夹、执行必要的系统更改(在 Windows 操作系统上创建注册表项等)。
因此重点是 -安装过程处理的文件量比下载过程要大得多。
下载一个文件(即使它有几 GB 大小)比解压并复制数百个文件要容易得多。
我应该了解内存中发生了什么吗?
记忆 (内存) 被用作数据的临时存储,其访问速度比硬盘上的数据更快。因此,在安装过程中,操作系统很可能会将正在安装的程序的不同部分放入 RAM。
写入内存中的文件在哪里,或者它们是否均匀?
诸如此类的术语记忆非常广泛。记忆可以参考RAM 模块,快速内部CPU缓存,交换文件,虚拟内存. 内存不同部分的访问速度和存储数据量存在差异。操作系统将尽最大努力以最佳方式利用内存。
安装过程难道不必与下载一样快吗?
如果我们谈论安装文件大小为 500kb 的程序 - 很可能安装过程会与下载一样快。
如果我们谈论大型程序——这很难给出答案,因为使用 56 kb/s 的网络连接,下载一个程序需要几天的时间,安装它需要 10 分钟的时间。
看看这个例子。
某人正在从当地书店购买一本书。他带着这本书上了车,5 分钟后就到家了。(这是下载过程 - 涉及一个粒子的操作 - 书)。
他开始阅读这本书。根据他的阅读能力,他花了 3 周的时间才读完(这是安装过程 - 涉及许多粒子的操作 - 所有页面)。
或者也可以是那样。
有人买了一本书,然后不得不穿过整个城市走回家。从书店到家花了 7 个小时。(这是下载过程 - 涉及一个粒子的操作 - 书)。
这本书只有 10 页,所以读完它需要 20 分钟。(这是安装过程 - 涉及许多粒子的操作 - 所有页面)。
因此可以看出,这两件事是相当独立的(尽管它们仍然依赖于相同的东西)。
答案2
许多游戏都是以压缩档案的形式通过互联网下载的,例如 ZIP 或 ISO 文件(我猜这甚至适用于 Steam 等游戏分发服务)。这个过程非常高效,因为只需通过网络发送 1 个 HTTP 请求,这意味着将游戏档案传输到计算机的开销非常低。大多数情况下,下载的档案不会存储在内存中,而是存储在磁盘上的临时位置。
但是,安装则完全是另一回事。安装通常需要解压存档。这里有两个因素:
- CPU 解压档案的速度
- 硬盘存储解压文件的速度
第一个因素通常比第二个因素耗时少。大多数现代 CPU 应该能够以超过 20 MB/s 的最高压缩率解压档案。但是,它仍然会占用相当多的时间,特别是如果你的 CPU 很慢的话。
第二个因素更为重要。大多数游戏包含许多小文件。例如,纹理和音频数据可能存储为单独的文件。还有许多配置文件。传统硬盘的随机写入速度非常慢 - 有时,磁盘利用率可能达到 100%,但吞吐量只有数百 KB/s。写入磁盘的数据量实际上可能远远高于下载的数据量。如果您的临时位置与安装位置位于同一磁盘上,您不仅需要考虑写入文件的成本,还需要考虑读取存档的成本,这会严重影响吞吐量。
请注意,对于固态硬盘 (SSD) 而言,这可能并不那么重要。