当前位置: 首页>>技术教程>>正文


(Ubuntu)Linux文件复制算法是否比Windows 7更好?

, , , ,

问题描述

自Windows Vista以来,Windows复制确实是一团糟。甚至Microsoft都声称他们已经从用户的角度提高了性能,这并不是很明显。即使使用单个文件,对于’Calculating’,复制窗口也会显示太多时间,然后完成复制(即使在100%完成后,有时对话框仍处于活动状态)。

同时,我在Ubuntu Linux中备份了一些文件。我觉得那真的很快。可能是由于更快的UI更新引起的感觉。

我从Jeff Atwood few years back on Windows File Copying阅读了一篇内容丰富的文章。但是我的具体问题是什么

  • (Ubuntu)Linux文件性能是否优于Windows-7?

  • Windows和Linux是否都在利用算法和流水线机制来提高速度?如果是,哪个更好?

最佳解决方法

Windows内置的标准copy并不是很好,但是Windows附带了两个效率更高的高级命令:xcopyrobocopy。特别是当您需要完全控制ACLs等高级文件系统功能或备用数据流时,robocopy是首选工具。

例如,如果要复制大型目录结构,则可能希望目标没有碎片。 robocopy的标准调用已经非常擅长此操作,但是由于目录条目是在创建子目录时更新的,因此仍然可以得到零散的目录。为避免这种情况,您可以分两次运行robocopy,第一个过程仅创建目标目录结构而不复制任何文件内容,第二个过程实际复制文件主体。

总之,robocopy非常高效,并且完全了解NTFS功能。

次佳解决方法

从Ubuntu Linux中看到的某些速度可能是文件缓存。据我所知,Linux中的文件复制不竭力减少文件缓存的使用。

在Linux中,当您复制一个小于RAM约50%的文件时,整个文件将被复制到文件缓存中,然后在时间允许的情况下写入磁盘。这看起来非常快,但是它会迫使其他更有用的文件脱离缓存。这些可能是Web缓存文件,电子邮件,配置文件,字体文件等。

Windows XP也用于复制,而不考虑文件缓存。但是在Windows Vista中,Microsoft changed Explorer so that when it copies it uses a limited amount of file cache。这样可以减少大文件副本对系统其余部分的影响。但这也将相对较小的文件复制速度降低到了硬盘速度。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7600.html,未经允许,请勿转载。