为什么拷贝对话框的估计时间如此不准确?

请稍等1分钟…

因为拷贝文件对话框里的剩余时间都是猜测出来的。
操作系统无法预测文件的精确拷贝时间,但是它有时候不得不这样尝试这样做。在拷贝操作的最初阶段,如果没有之前可以参照的历史记录,则这个预测将十分不准确。

下面是猜测逻辑

假如有人告诉你:”我将执行一个操作,同时从0开始计数,一直到100,而你只需要给出持续性的估算直到操作完成”。

你观察到:这些计数会每隔1秒加一,所以你的估算时间是100秒。拷贝操作开始了,计数是这样的:1, 2, 3…。但是,如果出现某些磁盘IO的原因,文件拷贝操作减慢了,计数变成了: 4, …, …, 5, …, …,你不得不将操作剩余时间提升到200秒。过了一段时间,拷贝速度提升了:6-7-8-9,你又得重新估算剩余时间。

如果用户只是看操作剩余时间,而不了解底层的原理的话,他肯定会想着这个剩余时间是不是错了?用户看到时,拷贝文件的剩余时间一开始是100秒,后来变成了200秒,再后来又变成了50秒。是不是有什么问题呢?为什么不能给出一个稍微靠谱一点的时间呢?

文件拷贝类似于上面的原理。操作系统的资源管理器能知道需要拷贝的文件的数量和总字节数,但是它所不知道的是这些字节流在硬盘或网络甚至互联网上传输的速度,所以它不得不估算操作剩余时间。如果传输吞吐量不时在变化,则它需要重新将新的吞吐量计入到估算算法中,这样,你就会看到一个”不那么靠谱”的剩余时间。

总结

你无法想象一个你没有见过的东西,你也不能预测一个毫无章法的东西的运行轨迹。
股市?

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why does the copy dialog give such horrible estimates?》

猜你喜欢

转载自blog.csdn.net/mmxida/article/details/108817148
今日推荐