找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 6068|回复: 0

[科普]解释U盘拷文件有时进度条卡在最后不会动

[复制链接]

1112

主题

1653

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
245
威望
744 点
宅币
24254 个
贡献
46222 次
宅之契约
0 份
在线时间
2298 小时
注册时间
2014-1-26
发表于 2014-10-3 02:30:35 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
这个现象主要出现在USB 3.0,当一台电脑装了Intel USB 3.0的驱动的时候,这个电脑的USB 3.0的口就可以使用了(否则就会被系统当成USB 2.0来用)
那么Intel的这个驱动除了驱动了3.0的口以外,它还负责什么呢?它还负责帮电脑控制U盘。为了让用户用得爽,它使用了文件缓存的技术,也就是用一块内存来缓存电脑对U盘的操作。类似的功能有Samsung Magician对三星的SSD开启RAPID模式,以此来加速固态硬盘(这个时候你去用别的软件给固态硬盘跑评分,这个评分能达到非常屌的水平,但事实上这个是“作弊”)。

那么当你把一个1G的文件拷到U盘里的时候,Windows的这个拷文件操作就被这个驱动缓存了一下,它的缓冲区大概是512 MB,所以你会看到进度条一下跑到了一半。然后缓冲区满了,于是Intel的驱动终于开始真正地将缓冲区的内容往U盘里写了。嗯。写一点,就释放一点缓冲区,于是Windows继续做着自己的“拷文件操作”,Intel的驱动继续一边接收Windows提供的数据,一边将缓冲区中的数据写入U盘。

之后,大家可以看到,进度条快满了!但事实上这只是Windows已经把几乎所有的文件数据都交给了Intel的驱动。而Intel的驱动却仍然在满满地将缓冲区中的内容一点一点写入U盘。实际的进度呢,大概就是一半的位置吧。
最后进度条到了最后还差一点的时候,不动了。没错。Windows已经把所有的数据都给了Intel的驱动,但是Intel仍然在慢慢地将数据写入U盘……打个比方就是我把货物一股脑扔给了搬家公司,然后,我告诉别人说“我搬完了,还差‘一点儿’”然后我不断去问搬家公司,“好了吗?好了吗?”搬家公司却在一点一点地将我的货物搬到另一个房子里,说“还没好,还没好。。”没错,这个搬家公司就是Intel的驱动。

所以大家遇到这种情况的时候,要蛋定,别拔了U盘说死机了,别点取消,别关掉explorer或者召唤任务管理器出来干掉谁谁谁。等着它吧!
20141003023118.png
回复

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-27 11:52 , Processed in 0.050970 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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