2012-12-18 55 views
1

deleterenamemove文件操作的成本是多少?哪一个是最快的?重命名,删除或更改路径文件的成本

我想用java和这些文件由linux操作系统维护。

+0

您可能会得到更好的答案,如果你让你的问题更好。 “成本”是什么意思?绝对时间或时间复杂度(“大O”符号)? – Neowizard

回答

1

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

+1

什么是订单操作? (如果您在谈论“大O”符号...请使用符号...) –

+0

此外,移动和删除文件不是“O(1)”。移动(涉及拷贝的地方)是“O(N)”,删除可能是'O(logN)',其中'N'是文件的大小。 –

0

重命名文件基本上只是改变了路径本地化的方式,所以应该尽可能快地更改路径。删除确实意味着删除一个引用,所以它也应该相当快。

唯一的情况下,你应该看到在运行成本显著增加是复制文件或者改变到另一个分区/硬盘路径。这些情况实际上会要求文件系统逐个文件地复制文件。

多久它实际上需要将在很大程度上取决于你使用(EXT3,EXT4,FAT,...),当然在你的硬盘和硬盘的连接速度(即你的主板在文件系统上)。

  • 如果您需要关于您的问题的明确答案,我不认为您可以避免使用您的特定测试设置自行进行基准测试。
2

不可能说哪个更快,因为它取决于各种因素。 (而且很可能是无关紧要的......因为他们做不同的事情,因此不能互换。)

但是:

  • 重命名和移动通常是等价的,如果源和目标位置是在同文件系统。

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

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

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