Can Apple Predict How Long a Transfer Takes?

When I was young and in the car for a long trip, I would ask my parents: “how much longer until we get there?” Now that I’m a parent, my kids don’t ask me this same question. Why? Because they have a reasonably good estimate of how long it will take to get there. They […]
iphoto
Rhett Allain

When I was young and in the car for a long trip, I would ask my parents: "how much longer until we get there?" Now that I'm a parent, my kids don't ask me this same question. Why? Because they have a reasonably good estimate of how long it will take to get there. They just look at the GPS in the car and it says something like 2 hours and 23 minutes left. These computer-GPS estimates are fairly accurate - usually within 10 minutes are so.

However, it seems like Apple has a problem. The computers apparently have no idea how long a data transfer will take. Here is the situation.

  • I am setting up a new Apple Macbook Pro for use in the lab.
  • What better way to get everything set up the way you like it than to just use Apple's Migration Assistant. This app transfers all the data and settings from one computer to another. Simple, right?
  • The Migration Assistant is a kind and gentle assistant. It tells you approximately how long the transfer will take. This is helpful so you will know whether you should get a cup of coffee or go out drinking beer with your friends.
  • The Migration Assistant apparently has absolutely no idea how long this transfer will take so it just makes up some random looking numbers (maybe).

Really, it's crazy. One minute I look at the computer and it says 11 hours left. Next time I check (maybe 10 minutes later) and it says 2 hours. Later it will say 8 hours. Here is some useful advice. If you don't know something, just say "I don't know".

How Wrong Is the Apple Migration Assistant?

Let's get right to it. I took a picture of the transfer screen every so often (about 10 minute intervals). This gives me three things: the time, the predicted remaining time, and the percent completion from the progress bar. Since I know when the transfer is complete (well, I approximately know when), I can determine how wrong Apple is at each measurement.

Surprisingly near the beginning, the Migration Assistant was only 10 minutes off in the projected remaining time. Of course, right after than the estimated time returned to being off by 10 hours so....maybe that was just a lucky guess.

So, I will say this now. Why even make a guess at the time remaining? Why not just say "23% complete" or something like that? If you don't know how long it's going to take, just don't say anything. Oh, here's one that's even better. The Migration Assistant could come up with some witty sayings like:

  • It's not over until it's finished.
  • I bet it's nice outside. Why don't you go check?
  • A watched computer never boils and it never finishes the transfer.
  • Have you read a good book lately?
  • How about a game of chess? Or Global Thermonuclear Warfare?

Wouldn't that be better?

Making My Own Prediction

Yes, I have looked at something like this before - but that never stops me from doing it again.

What if I calculate the average "percent complete" velocity for a given time? If I call the completion percent (from the progress bar) xc, then the average progress velocity would be:

La te xi t 1

Notice that I will calculate the average velocity based on the amount of progress over the whole time. Of course you could also calculate a more instantaneous velocity based on the progress in just the last time interval. I think the average would be a more realistic value.

Once I have an average velocity, I can calculate the estimated time remaining. I know what "x" position I am starting at, I know my average velocity and I know my final position (which should be 100% complete). I can now just use the following:

La te xi t 1

Just to give you an idea of how this works, here is a plot of the transfer progress as a function of time. I have also picked two of the data points to use to create an estimated completion time.

Of course the later the time, the better estimate for the average velocity. This is the difference between my estimation method and the actual remaining time left along with the Apple error.

Ok, this is crazy. How can my estimates be so much better than Apple's? Yes, I have no idea what is actually taking place during this file transfer - but still. Why are Apple's estimates so crazy? On top of that, my estimates are based on random time intervals that I went to check out the progress of the transfer. I assume the Migration Assistant could actually check on the progress at a more more reasonable time to give a better estimate.

I still think Apple should just leave off the time estimate. If you don't know how long it's going to take just don't say anything.

Maybe I should be working for Apple since my guess is somewhat better.