向移动存储设备里拷贝文件,最终速率决定于你的存储设备的传输率,比如常见的USB 2.0接口的设备,理论速度上限是480Mbps,相当于60MB/s,不过由于不同USB芯片解决方案不同、存储介质(闪存、磁盘等)不同,具体的写入速度都会有很大的差异,一般能达到20MB/s以上就相当不错了,如某山寨U盘,写人速度只有5MB/s,如图1所示。拷贝速度时快时慢,实际上是Windows拷贝框显示的问题,也是Windows系统拷贝的机制问题。实际上在拷贝时,Windows会先预读一部分文件内容放在系统缓冲区中(buffer),当buffer充满再拷贝的目标位置后,Windows的拷贝框是看不出这个buffer的,你可以试试这个软件Teracopy,高级版本还可以设置buffer大小,如图2所示。并不能把所有的速度变化都归咎于显示问题,以TeraCopy而言,也会存在时快时慢的问题。产生原因是因为在Windows系统下,允许对移动存储设备的多个访问并行存在,最简单的例子,就是你可以同时向U盘上拷两个文件,而不是必须先来一个再来一个。无疑,这种时候你观察单个传输的情况,会发现速度下降了很多。事实上Windows系统本身就会时不时地去访问一下U盘,比方说索引服务刷新索引等等,这些行为不见得是用户主动触发的,或者用户触发但是自己意识不到的。其结果就是影响到拷文件的速度。另外补充一点,TeraCopy有一个功能就是为了避免这个情况的,你同时向一个驱动器上拷文件,如果目的地路径相同,TeraCopy会把这个请求合并成一个,顺序执行。如果是不同路径,TeraCopy的第二个进程会自动暂停,等第一个结束了才开始第二个。这都是为了不同一时间访问存储器。因为加上来回切换的开销,并行操作的效率总是低于串行的。