May 18th, 2006

  • evan

latency and predictive interfaces

It's well known that computers are generally "fast enough", at least in terms of throughput, but what I care about more as a user is latency. Latency is hard to eliminate: if clicking a button really does require a bunch of computation (like sorting a list), then you can optimize the algorithm to a certain point and then you're stuck.

Two thoughts on the subject:
  1. Does anybody measure interface latency on native apps? For Ajax apps people put a lot of effort into measuring latency, because it's typically much higher there. But native app latency matters too, and it feels like it's been increasing. See Glen's notes on trying to switch to OS X -- as I commented there, it would seem to me there's probably a window of time where your brain interprets "key press here + visual change there = CAUSALITY" at a very low-level way.
  2. How could you bring latency even lower? Start the computation before the user clicks! If you precompute the result of the most likely actions, then invoking that action can happen nearly instantaneously. This really depends on how much IO is involved, of course, and maybe most latent actions involve IO. But when I'm grumpy about latency, it's for stuff where the IO overhead isn't significant: like running "ls" in a directory right after I "cd" into it, or clicking "compose new mail" in an email client.