为什么Windows中的删除速度经常是周期性的?


13

只是出于兴趣,删除时间经常是周期性的原因是什么?在Windows 8中,删除对话框窗口在图中显示删除速度。

Windows 8删除对话窗口

如果没有理由,那当然也是答案。


4
您的文件夹中有100,000个文件,它们的大小各不相同,度量单位是每秒项目数,因此项目越小,项目删除速度越快。
Ramhound

3
@Ramhound,这似乎与文件大小的变化无关。图的正弦性质过于规则。
GaTechThomas

1
删除文件时,Windows不会将占用的块清零。删除大文件的时间不应比删除小文件的时间长。罪魁祸首很可能是数量庞大的物品。它们在许多子文件夹中吗?处理许多文件(大文件或小文件)时,无论您是要删除,复制还是移动文件,都存在相当大的开销。
Abstrask

2
某种缓存?一堆删除请求在图的峰值处被刷新了?
Jesse Slicer

1
我也看到过这种情况,有时波浪更大。
Moshe Katz

Answers:


5

有几个原因:

  1. 数据连续性:NTFS是通过在磁盘上顺序写入的方式实现的,因此,如果您编辑文件-NTFS可能必须将更改存储在硬盘的非连续扇区中。这意味着要删除文件,可能需要从扇区2跳到扇区100,000(当然,假设是),然后再返回以完成文件。然后,它找到要删除的下一个文件的下一个扇区,并且可以再次重复该过程。

  2. 数据类型:假设您要删除中的文件夹temp,其中可能包含大文件和小文件。其中一些处理速度很快,而其他一些处理速度可能较慢(无论是数据大小还是数据复杂性,即需要处理多少个扇区才能完成一个“项目”)

  3. @Ramhound提到了“每秒项目数”,这似乎已由您的删除对话框(Speed: 1.082 items/s)确认。因此,删除一个大文件,一个非连续文件或一个小文件都将影响每秒的项目数。

  4. CPU优先级:这是在时钟周期内完成的,因此您的CPU可能在该周期内正在运行其他进程,并且可能会影响速度(这是我的推测)


3
删除文件时,Windows / NTFS不会将占用的块归零。大小无关紧要,无关紧要。
Abstrask

@abstrask- 我没有说它不会将任何内容归零。 但是,它确实必须在$BitMap(文件)周围跳转到每个群集,并将其标记为可以自由使用(即“已删除”)。(在任何级别)打开和编辑文件都会占用资源,而在文件中跳来跳去确实会增加开销,并且绝对会减慢您的速度。如果文件很大,则编辑需要更长的时间;如果文件不连续,则搜索需要更长的时间。
nerdwaller 2013年

1
每个群集由$ Bitmap文件中的一位表示。假设默认分配单位大小为4 KB,则100 KB文件的分配参考在$ Bitmap文件中占大约3个字节。$ Bitmap文件中的一个大文件(例如1 GB)占用了32 KB。即使$ Bitmap碎片过多,硬盘驱动器也只需要在32 KB / 4 KB /群集= 8个群集之间跳过,即可将1 GB文件的群集标记为要删除。是的,必须翻转更多位才能删除大文件,但这几乎无法测量,并且绝对不会造成屏幕截图中所示的明显视觉冲击。
Abstrask
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.