Skip to main content

UI Latency

Posted by driscoll on June 8, 2009 at 10:10 AM PDT

One of the talks I attended at JavaOne was Ben Galbraith speaking on UI design. While not a blockbuster talk, there was a lot of good information in there.

Perhaps the most surprising was the topic of UI latency. I'd always heard that 200ms was about the "twitch-time" number, where a UI would start to feel significantly sluggish - this was the number that used to be bandied about on gaming sites 10 years ago.

It had never occured to me to test this thesis though - and that's the difference between someone like me and someone like Ben.

Ben put up a series of buttons on a web page with programmed latencies in increments of 50ms. His findings? 100ms is noticeable, and 200ms is the line for "sluggish". So, while 200ms remains the cutoff for "bad", 100ms would seem to be the cutoff for "good". Oh great, my target time just got cut in half.

Ajaxian has a writeup of this portion of the talk, check it out.

And don't forget that you can easily test this yourself, with a little bit of onclick and setTimeout.

Comments

Imagine how the customer sees a GUI built on Java Swing the first time cause of the cold start. I love Swing for the good design but we have to think about also the part of the customer. These problems are real. Maybe we could have Swing classes compiled in the class sharing area.

100ms has long been regarded as the maximum response time for a feeling of 'instant response', as recommended in the Java L&F Guidelines, Advanced Topics: http://java.sun.com/products/jlf/at/book/Responsiveness5.html#1002087 These figures are based on research done by Robert Miller back in 1968: http://portal.acm.org/citation.cfm?id=1476628 and verified in several studies since (e.g. Stuart Card in 1991): http://portal.acm.org/citation.cfm?id=108844.108874&coll=GUIDE&dl=ACM&CF...