过期罐头电脑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5552|回复: 0
收起左侧

在Windows 7中使用多线程加快文件复制

[复制链接]
renyi_wowar 2011-7-13 11:51:42 | 显示全部楼层
为什么没方法 在 Windows 7 下加快 Windows 7 中文件复制/传输功能呢?可以用 robocopy 实现多线程文件复制实现。
经常进行文件管理操作的朋友们,提到复制/粘贴操作,想必很多人还会回想起当初 Vista 奇慢的复制速度,不称心 于 Windows 系统内置的复制功能,由于 它太龟速了。于是大家就使用 FastCopy、TeraCopy 之类的软件来加速复制,Windows 7 随后则是修复了这一问题,但效果似乎也不理想,但是你是否知道 Windows 7 已经内置快速复制的功能?
假如 你要拷贝包含多个大容量文件的目录,那就需要. 使用 RoboCopy 命令了,它是一个命令行的目录复制命令,自从 Windows NT 4.0 开始就成为 windows 资源工具包的一部分,然后在 Windows Vista、Windows 7 和 Windows Server 2008 采用作为标准的功能内置,这个工具不只 复制速度十分 快,而且支持断点续传,甚至可以支持在制定的时间定时进行拷贝。Windows 7 中的此项功能也得到升级——已经可以支持多线程了,这就意味着可以大大提升复制速度。而且该功能可以创建两个文件构造 完全的镜像副本而不复制任何不需要. 的重复文件,同时还允许您保留 一切 相关文件信息,包括日期和时间戳、安全访问控制列表(ACL))等等。对那种N多小文件目录的复制能把速度提高一个数量级 ,几千个文件3秒就复制完了,而常用的复制粘贴方式大约 需要. 45秒。
例如要把光盘F:里的一切 文件拷贝到E盘的CD目录下,可以运行以下命令:
Robocopy /s F: E:CD
即便 此时忽然 取出光盘,也无妨,robocopy 会一直等候 ,直到把光盘重新放入光驱又会自动开始拷贝。
Robocopy 还支持局域网拷贝,甚至可以把局域网服务器中指定目录的目录构造 全部搬到本地,robocopy 支持在定时操作,就可以把复制的操作放到晚上进行,以免拥塞局域网,给他人 带来不便。
下面先看看这条命令的用法,如下图所示[win7旗舰版系统下载] :
201157131237806.png

如:RoBoCopy dir_from dir_to /E /MT:50 /LOG:copy.log
其中/E表示包含子目录,/MT:50是用50个线程(默认8个线程,最大可设128个),/LOG是重定向输出。更多选项可以用robocopy /?查看。
命令语法:ROBOCOPY source destination [file [file]...] [options]
源:源目录(驱动器:路径或服务器共享路径)
目的 :目的 目录(驱动器:路径 或 服务器共享路径)
文件:要复制的文件(称号 /通配符: 默觉得 "*.*")
为了测试复制文件的速度,做了如下的测试
201157131237806.png

可以 从上图中看到在120个线程的状况 下,复制大小为878.16MB的单个文件,从14:56:31开始,14:57:06完毕 ,共用了35秒得时间。
为了可以 测试在选取多少线程数可以更快速的拷贝文件,采用PowerShell脚本进行批处理逐一 测试不同线程的状况 下复制所需要. 的时间与线程的对应关系,并将其在坐标上描点作图,测试的PowerShell脚本如下:
for($i=128;$i –lt 129;$i++){
Robocopy /s C:CD C:testCD$i /MT:$i /LOG:log/copy$i.log
remove-item C:testCD$i*.*
"$i ," >>log/answ.txt
(Get-Content C:logcopy$i.log -TotalCount 6)[-1] >>log/answ.txt
"," >>log/answ.txt
(Get-Content C:logcopy$i.log -TotalCount 10000)[-1] >>log/answ.txt}
将脚本输出的内容经过格式规整,通过CSV格式导入到Excel中,并作出折线图如下图中所示[win7旗舰版系统下载] 的“系列1”线条:
收起这个图片展开这个图片
201157131237806.png

拷贝的目的 目录中共有324个文件,单个文件大小介于1MB与2MB之间,总文件大小549MB,与上面大小为878.16MB的单个文件相比,拷贝的时间要比之前要长,由于 文件数众多,需要. 逐一 进行拷贝破费 了比较长的时间,而且经过屡次 实验 实验当中是会有误差的,归一化后如图[ghost win7纯净版] 中黄色的“线性(系列1)”线条所示[win7旗舰版系统下载] ,可以 看到同样的文件组在使用不同的线程时拷贝速度是有差别 的,随着线程数的增加 ,拷贝的时间呈线性的减少。
其实 robocopy 还有很多强大的使用方法,读者可以使用 robocopy /? 命令进行查询,或者从本文末尾的附件中查看 RoboCopy 命令的详细选项,从中读者将会发现这条命令更强大的功能选项。
附:RoboCopy 命令的详细选项
复制选项
/S:复制子目录,但不复制空的子目录。
/E:复制子目录,包括空的子目录。
/LEV:n:仅复制源目录树的前 n 层。
/Z:在可重新启动模式下复制文件。
/B:在备份模式下复制文件。
/ZB:使用可重新启动模式;假如 回绝 访问,请使用备份模式。
/EFSRAW:在 EFS RAW 模式下复制一切 加密的文件。
/COPY:复制标志 :: 要复制的文件内容(默觉得 /COPY:DAT)。(复制标志 : D=数据,A=属性,T=时间戳)。(S=安全=NTFS ACL,O=一切 者信息,U=审核信息)。
/DCOPY:T:复制目录时间戳。
/SEC:复制具有安全性的文件(同等 于 /COPY:DATS)。
/COPYALL:复制一切 文件信息(同等 于 /COPY:DATSOU)。
/NOCOPY:不复制任何文件信息(与 /PURGE 一同 使用生效)。
/SECFIX:修复一切 文件的文件安全性,即便 是跳过的文件。
/TIMFIX:修复一切 文件的文件时间,即便 是跳过的文件。
/PURGE:删除源中不再存在的目的 文件/目录。
/MIR:镜像目录树(同等 于 /E 和 /PURGE)。
/MOV:移动文件(复制后从源中删除)。
/MOVE:移动文件和目录(复制后从源中删除)。
/A+:[RASHCNET]:将给定的属性添加到复制文件。
/A-:[RASHCNET]:从复制文件中删除给定的属性。
/CREATE:仅创建目录树和长度为零的文件。
/FAT:仅使用 8.3 FAT 文件名创建目的 文件。
/256:关闭超长路径(> 256 字符)支持。
/MON:n:监视源;发现多于 n 个更改时再次运行。
/MOT:m:监视源;假如 更改,在 m 分钟时间内再次运行。
/RH:hhmm-hhmm:运行小时数 - 可以启动新副本的时间。
/PF:以每个文件(而不是每个步骤)为基础检查运行小时数。
/IPG:n:程序包间的间距(ms),以释放低速线路上的带宽。
/SL:对照目的 复制符号链接。
/MT[:n]:使用 n 个线程进行多线程复制(默认值为 8)。n 必须至少为 1,但不得大于 128。该选项与 /IPG 和 /EFSRAW 选项不兼容。使用 /LOG 选项重定向输出以便取得 最佳性能。
文件选择选项
/A:仅复制具有存档属性集的文件。
/M:仅复制具有存档属性的文件并重置存档属性。
/IA:[RASHCNETO]:仅包含具有任意给定属性集的文件。
/XA:[RASHCNETO]:排除具有任意给定属性集的文件。
/XF 文件[文件]...:排除与给定称号 /路径/通配符匹配的文件。
/XD 目录[目录]...:排除与给定称号 /路径匹配的目录。
/XC:排除已更改的文件。
/XN:排除较新的文件。
/XO:排除较旧的文件。
/XX:排除多余的文件和目录。
/XL:排除孤立的文件和目录。
/IS:包含相同文件。
/IT:包含已调整的文件。
/MAX:n:最大的文件大小 - 排除大于 n 字节的文件。
/MIN:n:最小的文件大小 - 排除小于 n 字节的文件。
/MAXAGE:n:最长的文件存在时间 - 排除早于 n 天/日期的文件。
/MINAGE:n:最短的文件存在时间 - 排除晚于 n 天/日期的文件。
/MAXLAD:n:最大的最后访问日期 - 排除自 n 以来未使用的文件。

<font face=Verdana>/MINLAD:n:最小的最后访问日期 - 排除自 n 以来使用的文件。(If n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

一键重装系统|雨人系统下载|联系我们|网站地图|过期罐头电脑论坛

GMT+8, 2024-11-25 22:27 , Processed in 0.051506 second(s), 29 queries .

官方免责声明:本站内容来自网友和互联网.若侵犯到您的版权.请致信联系,我们将第一时间删除相关内容!

Powered by Discuz!

专注于win7_win10_win11系统下载装机

© 2010-2023 GQGTPC.Com

快速回复 返回顶部 返回列表