为什么我的文件复制很慢?

Mah*_*hes 11 windows-7 file-io

我正在尝试在同一目录中复制一个文件夹(大约 1GB),但复制速度很慢(大约 600kbps)。

我可以比这更快 (2/3 MBps) 从 Internet 下载大文件。

有什么想法吗?

在此处输入图片说明

注意:我使用的是 Windows 7 Professional。

Ota*_*cio 16

这是正常的,您正在读取和写入同一个物理磁盘,如果单个目录中有很多文件,情况可能会更糟。

  • 600MB x 3000 文件与 1.1GB x 22,231 文件有很大不同;我们也不知道他还剩下多少磁盘空间或他的磁盘碎片有多少。我以前的磁盘性能很差。 (4认同)
  • @maaartinus:不要忘记主文件表,它需要为*每个文件*更新。对于 3,000,它不会*明显*,但对于 22,000,它可能会很明显。此外,您可以简单地拥有比 OP 更快的硬盘驱动器,因此如果没有更多细节,直接比较不会非常可靠。 (3认同)
  • 这绝不是正常的,除非他真的有很多小文件。我只是在不到 1 分钟的时间内在 XP(单个磁盘,足够的 RAM)下复制了 600 MB(3000 个文件);这使得 10 MB/s,即快 15 倍。 (2认同)

Tam*_*man 12

小文件会影响性能。您下载的大文件只需要一个文件表条目并且只写入. 但是复制 20.000 个文件;除了读+写,还需要修改20.000个文件表条目。正如所评论的那样,即使是可用空间表和磁盘碎片也会发挥作用。你的复制对话框对我来说似乎完全正常,如果它长时间提到几个小时,我会担心......


aki*_*ira 5

如果操作系统必须调用“ CreateFile() ”,那么很多事情会变得有点血腥,有时甚至令人讨厌。在任何情况下,尝试禁用 8.3 文件名创建,因为“使长名称短”对性能有点不利。如果您有很多相似的命名文件,当截断为 8.3 时它们非常相似,那么您将经常触发 8.3 算法:

  1. 取长版本并将其截断为 8.3 个字符
  2. 是否已经有其他具有该名称的文件?
    1. 不?凉爽的。将其作为属性插入 MFT
    2. 是的?该死,将其缩短为 7 个字符并附加一个数字。再次检查 2.

如果该循环经常重复(有一个限制,但它会为每个新文件名运行几次),您会发现在移动/创建大量新文件时速度非常慢。

http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#short_vs._long_names阅读更多信息

除此之外(正如其他答案已经说过的那样):在创建图标和保存有关该新目录的文件的信息方面,资源管理器有很多工作要做。