创建1.3 GB文件仅需1秒。怎么样?


44

我的文件夹包含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秒来刷新数据。**


28
你知道...缓存。
mg30rg 2014年

1
完全重新启动计算机后,您是否尝试过重复?
ADTC 2014年

1
我还建议尝试使用CDBurnerXP之类的其他软件来创建ISO,并检查是否得到相同的结果。我也希望D:不是RAM驱动器-不太可能,但可能。
ADTC

1
创建ISO后,请尝试运行此处Sync提到的命令,以了解需要花费多长时间。
2014年

1
@Barmar我使用了Sync,您可以在问题的最后一段中看到结果。谢谢。
Ramazan Polat 2014年

Answers:


69

有了16GB的RAM,您可能有很多可用空间来进行磁盘缓存。ISO很可能只是被操作系统完全缓冲在RAM中。它将稍后写入磁盘,但是应用程序不必等待。


42
是的,如果您关闭计算机后未进行适当的关闭,则应用程序最近写入的数据可能尚未实际写入磁盘。
Wyzard

3
在文件系统上“保留”空间并不需要很长时间,对于C ++中的大型文件(几个TB),我已经做到了这一点,方法是查找与原始位置偏移的文件的最后一个字节-即时多terrabyte文件分配; 实际写入大量信息需要花费一些时间,但是Windows 7会将文件缓存在“可用”内存中-先前读取或写入的文件将保留为页面,直到在存在内存压力的情况下释放最可能的文件的前提下才释放页面需要在最近一次使用-这是新的Windows 7中
迈克尔·史汀生

10
它没有读取源文件...它们已经被缓存在ram中,因为您最近访问了它们。重新启动以清除缓存,然后尝试创建iso,它会变慢。
psusi 2014年

8
Microsoft实习生参加了会议。我的经理在NTFS上做了很多工作,并告诉我(IIRC),从调用到数据开始撞击磁盘控制器为止,可能要花费整整16秒的时间。在此期间,读/写调用将引用内存中的版本。直写标志将使您可以绕过Windows缓存,但是您仍然受磁盘控制器缓存的影响。WriteFile
zneak

2
如果您将文件复制到另一个驱动器,则将从缓存中复制正确的数据,即使尚未将其写入磁盘。所有文件访问都通过操作系统的磁盘缓存进行,因此,即使尚未完成对基础物理磁盘的实际写入,操作系统也可以提供对文件系统的正确且一致的视图。(而且我不确定您写全零的含义-字节的值不会影响将它们存储到RAM的速度。)
Wyzard-停止Harming Monica-14年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.