Tri*_*daz 12 windows-7 macbook file-transfer
我注意到将 24Mb 的数据从一个文件夹复制到另一个文件夹需要大约 30 秒,因为(我假设这是原因)它有超过 1,000 个单独的文件。复制 24Mb 不应该花这么长时间。为什么文件数量不同?
我在 MacBook(4GB 内存,Intel(R) Core(TM)2 Duo CPU P7450 @ 2.13GHz,32 位操作系统)上运行 Windows 7
编辑:NTFS 是驱动器上使用的文件系统
saw*_*ust 31
为什么文件数量不同?
显然,您只关注“复制文件”的“复制数据”方面。文件不仅仅是数据;它是文件系统中的一个实体。文件具有名称、属性和权限。在“复制文件”时,所有这些关于文件的附加信息都必须与数据一起复制。有大量磁盘 I/O 来执行此文件系统开销。
在通用文件系统中复制一 (1) 个文件的过程类似于:
(a)至少这意味着搜索当前目录。或者路径可能从文件系统的根开始,并且必须遍历多个级别的目录。
(b)至少这意味着搜索当前目录。或者路径可能从文件系统的根开始,并且必须遍历多个级别的目录。如果目标文件已存在,则确定应如何继续或中止复制。如果目标文件不存在,则必须创建一个新的目录条目,这可能涉及扩展目录(即文件块(又名集群)分配开销)。
(c)如果目录必须扩展,通过寻找空闲块来分配一个新块,用新分配修改分配表,然后将块写入磁盘。由于大多数文件系统维护分配表的多个副本,因此这意味着多次写入磁盘。
(c1)找到目标目录后,从磁盘读取目录块,使用复制文件的新目录项对其进行修改,然后将该块写入磁盘。
(d)为了复制文件,通过寻找空闲块来分配块,用新分配修改分配表,然后将块写入磁盘。由于大多数文件系统维护分配表的多个副本,因此这意味着多次写入磁盘。为了保持数据完整性,文件系统可能不会尝试合并(延迟和合并)目录和分配表的磁盘写入操作,而是在创建新文件和分配块时立即执行写入操作。
(e)数据复制完成后,使用适当的文件长度和时间戳更新复制文件的新目录条目,然后将目录块写入磁盘。
(f) 使用新的“访问”时间戳更新源目录条目,然后将目录块写入磁盘。
因此,您的问题不仅仅是一个文件,而是询问是否为一千个文件执行所有这些操作可能会增加仅复制文件数据部分所需的时间?如果您只复制一个 24MB 的文件,那么您将有一些东西可以与一千个文件的复制时间进行比较。
当备份机文件系统,各个文件复制到磁盘或分区上的另一个文件系统中很少采用,因为它是当你发现一个相当缓慢的过程。一种更快的方法是创建和编写一个单独的存档文件,以特殊文件格式保存源目录条目和文件内容;备份程序和 *nix 命令 'tar' 可以输出这样的存档文件。(请注意,'tar' 只处理归档文件,并不像归档+压缩实用程序那样使用压缩。)最快的备份方法是写入块设备(而不是设备上的文件系统),以便源文件系统是忽略(视为更多数据)并且可以执行源设备的逐块映像复制。
小智 5
硬盘没有确切的传输速率,它取决于适当的维护,即没有碎片,也没有坏扇区等......
如果硬盘是SATA 2并且是同一个分区,那只是数据传输的速度。
如果同一个硬盘中有两个分区,则不需要在总线和主板之间进行这种数据传输,即加载到缓冲区中。(然后取决于硬盘缓冲区大小。)
但是对于复制的每个文件,系统必须将其索引保留在 HDD 的 MFT(主文件表)中,如果您复制许多文件,这会使复制过程变慢。如果您有任何防病毒软件,它会扫描复制的每个文件。如果您启用了微软搜索文件索引(或任何其他文件索引服务),结果会更糟。
我认为许多文件的复制速度较慢肯定有很多其他原因,但这些应该是主要的。
归档时间: |
|
查看次数: |
5009 次 |
最近记录: |