2

deleterenamemove文件操作的成本是多少?哪个最快?

我想使用java,文件由linux操作系统维护。

4

3 回答 3

3

一般来说,不能说哪个更快,因为相对性能取决于多种因素。这可能是无关紧要的......因为它们做不同的事情并且通常不可互换。

然而:

  • 如果源位置和目标位置位于同一文件系统中,则重命名和移动通常是等效的。

  • 如果移动涉及在文件系统之间移动,它可能是最昂贵的。 O(N)必须复制字节。

  • 否则,删除可能是最昂贵的。操作系统需要更新父目录并将文件使用的所有磁盘块标记为空闲。

  • 实际成本还取决于操作系统和所涉及的文件系统类型,以及(在某些情况下)所涉及文件的大小 - 见上文。

于 2012-12-18T07:36:14.293 回答
1

它取决于文件系统的实现细节。在大多数文件系统中,它应该是一阶 O(1) 操作。

于 2012-12-18T07:04:25.337 回答
0

重命名文件基本上只是以本地化的方式更改路径,因此它应该与更改路径一样快。删除实际上只是意味着删除一个引用,所以它也应该相当快。

您应该看到操作成本显着增加的唯一情况是复制文件或将路径更改为其他分区/磁盘。这些情况实际上需要文件系统逐块复制文件。

实际需要多长时间很大程度上取决于您使用的文件系统(ext3、ext4、FAT...),当然也取决于您的硬盘和硬盘连接的速度(即您的主板)。

  • 如果您需要对您的问题有明确的答案,我认为您无法避免使用您的特定测试设置自行对其进行基准测试。
于 2012-12-18T07:14:29.100 回答