java文件移动性能高

时间:2010-08-11 18:17:16

标签: java storage unix

我正在编写一个媒体转码服务器,我需要在文件系统中移动文件,直到现在我处于使用java renameTo可以被其他能够提供更好性能的东西替换的困境。我正在考虑使用exec(“mv file1 file2”)但这将是我的最后一次赌注。 任何人都有类似的经历或可以帮我找到解决方案吗?

3 个答案:

答案 0 :(得分:8)

首先,renameTo可能只是包装系统调用。

其次,移动文件不涉及从文件本身复制任何数据(至少在unix中)。所有这一切都将删除旧目录中的链接,并添加新目录中的链接。我不认为你会在这里找到任何性能改进。

答案 1 :(得分:1)

我不认为使用文件的默认方法会有(可提及的)性能损失,因为大多数JVMtoOS函数已经包装了本机调用。

唯一需要执行exec的情况是,如果您想使用与程序不同的权限执行某些操作,或使用特殊工具来复制/移动文件。 (例如,涉及ntfs-junction时的智能移动)

答案 2 :(得分:0)

如果重命名是一个重要的性能瓶颈,那么您需要改进硬件,因为这是您的主要障碍。该软件是花费的时间的一小部分,并且优化它将没有什么区别。

你的磁盘配置是什么?它如何针对写入进行优化?