众所周知,HDD 的读写访问时间较慢。实际上,与传输多个以 KB 为单位的小文件相比,如果传输的文件较大,则速度并没有那么慢。
Windows 可以选择添加固定大小 128 GB 的 VHD。然后我们分配分区(假设驱动器D:\
专门用于VHD,大小相同128GB,分配单元尽可能大以表示一个片段,因为只有一个文件是VHD。
或者,我们可以在分配之前先对硬盘进行碎片整理。
然后我们将VHD挂载为磁盘,将磁盘初始化为GPT,然后分配带有盘符的简单卷分区E:\
。
那么,这真的会提高性能吗?我这么认为是因为操作系统和硬盘看到的是一个单元文件,即VHD。所以只有一个修改文件。
不太可能。
HDD根本不关心文件。它只关心头部运动——数据是线性的还是分散的。在这方面,更新遍布各处的大文件的小块与更新遍布各处的单个小文件完全相同。
因此,虽然 VHD 文件本身看起来像是内部的单个线性分配
D:\
(但实际分区也是如此!),但操作系统使用的其内容并没有很好地打包 - VHD内的小文件仍然分散在 VHD 内空间,当您使用它们时,硬盘仍然需要从一个文件查找到另一个文件;从一种程度到另一种程度;等等。它不会改变那些保留在“VHD 内部”的搜索 - 从物理上讲,它们仍然在整个 128 GB 区域中完成,并且仍然需要相同的时间。当然,操作系统仍然可以在已安装的 VHD 中看到多个文件。当您使用 VHD 安装的内容时
E:\
,您并没有绕过任何东西;如果它们之前是很多小文件,那么之后它们仍然是很多小文件,并且因为 VHD 具有像真正的 HDD 一样的 NTFS 文件系统,所以操作系统仍然必须以相同的方式更新其元数据,等等。(事实上,操作系统现在可能必须更新元数据两次,一次针对 VHD 的文件系统,另一次针对物理分区的文件系统。)
这一切都与寻道时间有关,即机械地将读/写磁头从 A 移动到 B 所需的时间(这本质上是浪费时间,因为 HDD 在寻道时无法传输数据)。我见过 SSD 的吞吐量仅为其所取代的 HDD 的一半,但它们仍然感觉更快,因为它们的寻道时间为 0。
如果不需要任何查找,例如,如果您拿起整个.vhd并开始将其复制到其他地方,那么它确实比复制单个文件要快(好的 HDD 甚至可以超过廉价的 QLC SSD)。因此,这可能是“全尺寸 VHD”计划的唯一可能优势。但你已经可以通过分区来做到这一点;有一些工具可以将分区复制为单个单元(甚至可以将分区复制到 .vhd 中)。