创建 1.3 GB 文件只需 1 秒。如何?

Ram*_*lat 44 windows-7 iso-image filesystems

我有包含 200 多个文件且大小超过 1.3 GB 的文件夹:

在此处输入图片说明

我使用 Gizmo Drive 软件从该文件夹创建一个 .iso 文件。

在此处输入图片说明

有趣的是它只需要 1 或 2 秒

在此处输入图片说明

我已经试过好几次了。我什至尝试在另一个卷上创建 .iso 文件。同样,它只需要 1 或 2 秒。

我尝试挂载 .iso 文件,一切正常。我认为它可能是一个引用源文件夹的 .iso 文件,然后我将源文件夹移动到另一个地方,但没有运气。即使复制生成的 .iso 文件也需要几分钟!

那么为什么创建 .iso 文件只需要 1 秒钟!你对此有什么解释吗?

笔记

  1. 所有测试均在普通 HDD 上进行,无 SSD。
  2. 使用 Windows 7 x64,有 16 Gig 内存,Core i5 CPU。

在创建 .iso 文件后,我使用sync.exe将所有文件系统数据刷新到磁盘,sync.exe花了 14 秒刷新数据。这意味着创建 .iso 文件实际上需要 14 秒。我的 D: 驱动器上的快速基准测试表明,它可以在 14 秒内将相同的 .iso 文件从 SSD 写入我的 D: 驱动器,并确认源文件夹在 RAM 中,刷新数据需要 14 秒。**

Wyz*_*ard 69

使用 16GB 的 RAM,您可能有很多可用于磁盘缓存。ISO 很可能只是被操作系统完全缓冲在 RAM 中;它稍后会写入磁盘,但应用程序不必等待。

  • 是的,如果您在没有正确关机的情况下关闭计算机,应用程序最近写入的数据可能尚未*实际上*写入磁盘。 (42认同)
  • 它没有读取源文件……它们已经缓存在 ram 中,因为您最近访问过它们。重新启动以清除缓存,*然后*尝试创建iso,它会变慢。 (10认同)
  • 微软实习生插话。我的经理在 NTFS 上做了很多工作,并告诉我 (IIRC) 从你调用 `WriteFile` 到数据 *开始* 到达磁盘控制器的时间可能需要整整 *16 秒 * . 在此期间,读/写调用将引用内存版本。直写标志将让您绕过 Windows 缓存,但您仍然受磁盘控制器缓存的支配。 (8认同)
  • 在文件系统上“保留”空间不需要很长时间,我已经通过从原点寻找文件偏移量的最后一个字节来为 C++ 中的非常大的文件(几个 TB)做到这一点 - 即时多太字节文件分配; 实际上写入这么多信息需要一点时间,但是在 Windows 7 中文件被缓存在“空闲”内存中 - 以前读取或写入的文件将被保留为页面,直到有内存压力来释放页面,前提是最有可能的文件be needed 是最近使用的 - 这是 Windows 7 中的新功能。 (3认同)
  • 如果您将文件复制到另一个驱动器,您将从缓存中复制正确的数据,即使它尚未写入磁盘。所有文件访问都通过操作系统的磁盘缓存,因此操作系统可以显示写入文件系统的内容的正确且一致的视图,即使对底层物理磁盘的实际写入尚未完成。(而且我不确定你写全零是什么意思——字节的值不会影响它们存储到 RAM 的速度。) (2认同)
  • @RamazanPOLAT 我们很想知道您是否能够在 ** 重新启动计算机(以清除 RAM)后重现此内容,我也想知道您是否可以使用可用于创建 ISO 的其他软件重现此内容文件(再次,重新启动后)。请看我对这个问题的评论。 (2认同)