Max*_*sky 43 windows file-transfer

我知道Windows复制对话框(在Windows XP中)首先将副本存储在内存中,并且在对话框关闭后仍在复制,所以时间是关闭的,但为什么是估计制作副本所需的时间如此不准确,即使已禁用内存复制(在 Vista 和 Windows 7 中)?好像太随意了!整个复制过程是如何工作的,为什么 Windows 不能正确估计它?
R-D*_*R-D 48
Raymond Chen 曾经写过一篇非常好的文章。基本上,对话只是猜测:)。
https://devblogs.microsoft.com/oldnewthing/20040106-00/?p=41193
“因为副本对话只是猜测。它无法预测未来,但它被迫尝试。而且在副本的最开始,当历史几乎没有时,预测可能非常糟糕。
这里有一个类比:假设有人告诉你,“我要数到 100,你需要不断地估计我什么时候能完成。” 他们开始说,“一、二、三……”。您注意到它们以大约每秒一个数字的速度运行,因此您估计为 100 秒。哦,哦,现在他们放慢了速度。“四…………五…………” 现在您必须将估计更改为 200 秒。现在他们加快了速度:“六七八九” 你必须再次更新你的估计。
现在有人只听你的估计而不是计算的人认为你不在乎。你的估计从 100 秒到 200 秒再到 50 秒;你怎么了?你为什么不能给出一个好的估计?
文件复制是一样的。shell 知道将要复制多少文件和多少字节,但它不知道硬盘驱动器、网络或互联网的速度有多快,所以它只需要猜测。如果复制吞吐量发生变化,估计需要更改以将新的传输速率考虑在内。”
Sco*_*ain 33
我要数到 10,要数到 101....2....3....4需要多少个点?
5.6.7现在呢?您是否考虑了数字之间的所有过去点并对其求平均值,您是否只采用最后 4 个间隔并使用该平均值,您是否只查看最后一个间隔?
文件传输也有同样的问题。文件传输的速度不是恒定的,它的加速和减速基于很多因素。数字跳跃如此之大的原因是微软倾向于“只计算最后一个间隔”的一面。
频谱的那一边没有任何问题,它为您提供更准确的“每秒秒数”(实时一秒使计数器下降一秒)但这会导致计时器的总 ETA 跳动很多.
另一面的一个很好的例子是压缩时的7-Zip。如果压缩的速度在处理过程中下降,您可以看到 ETA 不会像文件传输 ETA 那样剧烈跳跃,但可能需要 2 到 3 秒的实际时间,然后计时器才会倒计时一秒(或者它甚至可能开始计数) ) 直到它稳定在新的速度。
jde*_*aan 29
简而言之:糟糕的算法和跳跃的估计实际上是一个实现弱点。
TeraCopy等其他工具做得更好。我认为不值得解释为什么他们的实施不好。他们会注意到这一点,并会改进。
什么难点:
为此,不仅字节量而且要创建的文件量都起作用。如果您有一百万个 1KB 文件或一千个 1MB 文件,情况将大不相同,因为前者具有创建许多文件的开销。根据所使用的文件系统,这可能比实际传输数据需要更多时间。
这个对话也让我发疯了好几次:
现代 Windows 复制的东西也好不到哪里去:
Jou*_*eek 15
微软的 Raymond Chen从 WAAAAY 回来实际上有一个几乎规范的答案,并且有几个部分可以解决这个难题。
因为复制对话框只是猜测。它无法预测未来,但它被迫尝试。而在副本的最开始,当历史几乎没有时,预测可能非常糟糕。
首先,Windows 是在猜测。它知道有多少个文件,它们有多大,但每个文件的传输速率变化很大。在某些情况下,这取决于大小,甚至驱动器上的位置。随着时间的推移,它会根据当前和过去的条件调整其猜测,因此您在实际条件下估计的传输速度不准确。
hai*_*img 12
为什么复制对话框给出了如此可怕的估计?
因为复制对话框只是猜测。它无法预测未来,但它被迫尝试。而在副本的最开始,当历史几乎没有时,预测可能非常糟糕。
这里有一个类比:假设有人告诉你,“我要数到 100,你需要不断地估计我什么时候能完成。” 他们开始说,“一、二、三……”。您注意到它们以大约每秒一个数字的速度运行,因此您估计为 100 秒。哦,哦,现在他们放慢了速度。“四…………五…………” 现在您必须将估计更改为 200 秒。现在他们加快了速度:“六七八九” 你必须再次更新你的估计。
上面引用的博客文章对此问题进行了长时间的讨论,并附有一些有趣的评论。
Raymond Chen 是一个传奇人物,“微软的 Chuck Norris”,我想你不会得到更权威的答案。我敢肯定他至少看过有问题的代码。
nit*_*k01 10
显而易见的原因是传输速度随时间变化,平均值也是如此,预测也是如此。为了向非技术朋友解释这一点,我使用了一个涉及乘飞机旅行的类比。你要飞越大西洋。当您乘坐出租车抵达出发机场时,您的预计到达时间约为两个月。当您在到达机场下机时,根据您目前的平均速度,您将在 5 秒内到达您朋友的家。
但是您需要了解速度实际上可以变化多少,即使在看似可预测的情况下,例如在同一磁盘内或两个本地磁盘之间复制文件。我喜欢 Windows 8 中的一项新功能是,如果您单击“更多详细信息”,则可以绘制随时间变化的速度图表。如果您无法访问 Windows 8 计算机,请搜索Windows 8 复制对话框的图像以获取大量示例。它们中的许多都相当平坦,但其中许多也令人不安地颠簸,以至于您怀疑硬盘驱动器是否真的健康,当它下降到零时。
其中一些颠簸可能是由于文件大小的变化 - 较小的字段会产生更多的访问,这会减慢速度,尤其是在必须通过移动读取头来寻找的机械硬盘驱动器上 - 但有些它可能只是一个便宜的驱动器轻轻一碰就会停止,以防止损坏盘片。
ETA 预测算法有好有坏,但为了准确预测,计算机必须无所不知。试图使算法“智能”的风险在于它可能会产生新的、不可预见的情况,在这种情况下它甚至会出现更可笑的错误。


| 归档时间: |
|
| 查看次数: |
29506 次 |
| 最近记录: |