为什么删除大量文件(平均大小较小)比删除单个文件(巨大文件)的时间更长

为什么删除大量文件(平均大小较小)比删除单个文件(巨大文件)的时间更长

假设我有两个删除文件的情况:

  1. 150,000 个文件,平均大小为 30 KB,总大小为 4 GB
    --> 一小时内完成
  2. 单个文件大小为 8 GB
    --> 快速完成

情况 2 中的文件大小比情况 1 中的大,
为什么情况 1 中的删除操作比情况 2 中的删除操作花费的时间更长?

答案1

由于有人要求视觉解释(粗略地说并夸张):

(点击查看大图)

文件删除

答案2

删除每个文件都包括对目录元数据(即存储文件信息的位置)的更新以及(通常)对可用空间位图的更新。150,000 个文件中的每一个都是对磁盘上所有元数据的一次操作。

删除单个文件,无论大小,都会更改为单个元数据条目。

因此,在第一种情况下,您实际上比第二种情况下多执行了 150,000 次操作。

答案3

案例 1 需要很多很多的目录操作。每个文件都是单独删除的,这需要将其从其所在的目录中删除。

删除 150,000 个文件需要在目录结构中找到每个文件,然后从目录中删除该文件,并在此过程中维护目录结构的组织。

答案4

要删除一个文件,大多数操作系统只会将其目录条目标记为未使用,稍后用另一个文件的目录条目替换(除了将其在磁盘上占用的空间标记为可用)。

它实际上并没有检查文件中的所有数据并将其删除,这就是取消删除实用程序起作用的原因。

相关内容