612: Estimation

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
They could say "the connection is probably lost," but it's more fun to do naive time-averaging to give you hope that if you wait around for 1,163 hours, it will finally finish.
Title text: They could say "the connection is probably lost," but it's more fun to do naive time-averaging to give you hope that if you wait around for 1,163 hours, it will finally finish.


When moving or copying files using the Windows Explorer, a dialog box opens to inform the user of how many of the files being moved have been moved with an estimate of how long the rest of the files should take. However, this estimate is often subject to seemingly random and extreme changes from a time measured in seconds or minutes to one measured in hours or days. This is because Windows bases its estimate on the latest file transfer rate, which exaggerates short-term fluctuations. For instance, transfers of many small files are generally slower than transfers of a few large files, because of per-file overhead (time spent writing data describing the file's title, location, etc. to the disk). A brief slowdown may cause the system to display that the transfer will take a long time (based on the total amount of data yet be transferred and the current low speed), while a sudden burst of data moved quickly between memory caches will give a time that is much too small.

A better implementation would keep track of the average file transfer rate over the entire operation, which would even out the bumps and give a more accurate estimate. Windows 8 avoids the problem by doing away with the time estimate.

The joke in the comic is the idea that this feature was actually purposely implemented and that the person who did so actually talks like that. He tells some friends on the phone how long it will take for him to arrive at their meeting point. However, like with Windows's estimation feature, he quickly changes his estimate multiple times from the extremes of days to seconds due to small fluctuations in traffic flow (like when he has to stop on a red light and then he speeds up on green).

The title text refers to the fact that if the connection is lost, and data can no longer be transmitted, the estimation just gets larger and larger as time goes on rather than realizing that no data being sent means there is no connection. This is a behavior that occurs on Microsoft network connections even when the connection is not lost. Kubuntu avoids this problem, but not that of wide fluctuations, by including only the past few seconds in its estimate. If there has been zero progress within the averaging interval, it reports "Stalled".


In 2021, Dave Plummer, whose team worked on the Windows progress dialog, created a video in response to this strip. It further explains why the estimate can be wrong and fluctuate extremely.


[Cueball is in a car, talking on his phone.]
Cueball: I'm just outside town, so I should be there in fifteen minutes.
Cueball: Actually, it's looking more like six days.
Cueball: No, wait, thirty seconds.
[Caption below the frame:]
The author of the Windows file copy dialog visits some friends.

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


I've experienced this more strongly while installing programs rather than transferring files, and the "connection lost" part is not exclusively from Microsoft. 22:06, 3 January 2014 (UTC)

I think there needs to be some explanation on what "per-file overhead" is, for those who don't know - myself, for instance. Codefreak5 (talk) 22:12, 17 July 2014 (UTC)

It's the time spent looking up the destination folder, adding an entry for the file in that folder (a folder is an index of file names and locations, not a physical division of the disk), and recording metadata such as the creation date and owner. Basically, it's the time it would take to move the file to a different folder on the same disk, minus the time it would take to delete the file (bypassing the Recycle Bin). Promethean (talk) 06:08, 18 July 2014 (UTC)

In fairness, I wonder if we should mention that this is a really hard problem to solve. it's only a little bit easier than the extremely hard problem given in 1425: Tasks. User: 00N8 (talk) 00:02, 5 March 2018‎ (UTC)