How to make a fast machine unresponsive

This is not news, but Mac OS X has a problem with gratuitous animation. In several places an animation appears before the system responds to user input. This is the worst time to animate, because it increases response time. The user just has to wait, as if machines had not gotten a hundred times faster in the last twenty years. The fastest computer in the world won't make a 300ms animation finish in 10ms, and the machine will feel slow, because it's not responsive to the user.

The most egregious animation is in the screensaver. At least in 10.4, it tries to soften the transitions between itself and whatever else was on screen by fading out and back in again. It's nice and pretty, but this is a terrible time to fade! When the screen saver is disturbed, this means the user is about to use the machine. They don't want to wait, not even for a third of a second. They especially don't want to wait for a fade that makes the machine look less snappy!

There's also a 200ms animation when opening some dialogs, which has the same problem. Fortunately you can turn that off:

defaults write NSGlobalDomain NSWindowResizeTime .01

The .01 is because 0 means default, which means 200ms. .01 is effectively zero.

I don't know how to turn off the screensaver's fade, so I increased the delay before it starts, which minimizes the most annoying case: when I'm staring vacantly at the screen, and haven't touched the mouse for a few minutes, and the screensaver interrupts me, and keeps interrupting for another second, while it tries to soften the jarring return to what I was already looking at.

I'm not a big fan of chrome, because the user soon stops seeing it, but its cost remains. But there are plenty of places where animation is not a problem. Places where I don't quickly learn to ignore it. Places where I don't have to wait for it. Places like screensavers.

No comments:

Post a Comment

It's OK to comment on old posts.