What’s Next for the Perception of Performance?


The title isn’t a rhetorical question. Now that Margaret’s acceleration based scrolling model has landed for feedback, we are trying to figure out what perception of performance improvement we should target next.

You can check out the full list of ideas on the mozilla wiki. If you have ideas on other things we should be considering please add them to the wiki or comment below.

But more importantly: what do you think is the single perceptual trick you believe would have the biggest impact on how fast Firefox feels? (simply saying “actually make ___ faster” doesn’t really count, and yes we are working on that as well).

I’m thinking we might next work on changing the rate of progress for all of our progress bars. Jeff Atwood over at Coding Horror has a fantastic blog post on the topic that really gets to the root of perceived performance vs. actual performance:

The idea that performance is determined largely by the user’s perception rather than actual wall-clock time can be liberating. Like a magician using skillful sleight of hand to perform magic tricks, you can seemingly alter reality.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
Feedback on Scrolling Changes for Windows
Sure it’s Fast, But How Does it Handle?

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

In Google Chrome, when you open a tab, there’s a short little animation of the tab appearing, which make the tabs feel like they’re opening faster.
Another thing to that effect they do in Chrome (sorry, I’m sure you’re sick of Chrome comparisons by now), is when you close tabs, the other tabs don’t resize to fill the empty space until you’ve moved the mouse away, which allows one to close several tabs (with those little animations, of course) with no mouse motion required, which I think also leads to an increased perception of speed.

1. This might be because of the different way (”native” vs. with extra layer of chrome/xul) on os x, but if I compare safari / firefox (latest versions) sometimes firefox seems less responsive (with the same tabs, same programs open)
2. Crash less. This might sound like flamebait or something, but for some reason I think since 3.5 Firefox crashes more often (at least for me). I tried disabling/uninstalling addons, but it didn’t help. Also I didn’t have many installed in the first place. It’s not really reproducable though, it happens with lots of tabs or even with just 5. (both while only minimal background processes are running), so not like I have too many Photoshop sessions filling up memory.
That’s why unfortunately because of subjectively less crashing and (sometimes) speed I have been using safari a bit more in the past, though normally I hate it.
3. Fix the “Problem to restore tabs” screen. It always makes it seem like something went really wrong, even when I only was on trusted sites at the time and a click on “restore all” works flawlessly, so why doesn’t it restore everything right away?

Margaret’s work is awesome and if other changes are as equally as cool and noticeable, then users are in for a big treat.

I think that working on the progress bars is a good idea and at least you have Vista’s progress bars to use as an example of the exact opposite way of doing things.

I don’t have any idea how the progress bars interpret and display progress, but I’d much rather see the progress bar smoothly, and consistently advancing (even slowly) than to watch it move in several abrupt block steps (move, stop, move, stop, move, stop…).
I know that there is some sort of activity and communications going on, so I believe that if a user sees activity in the progress bar, then they’ll think that there is actual progress being made instead of thinking that Firefox has frozen, is not doing anything, or is just slow (when we all know that it isn’t Firefox’s fault anyway).
Of course whether or not the end result is the desired one, there is always progress being made.

Things feel faster when they pop in. Currently Firefox does a lot of progressive loading then renders and re-flows the page in front of your eyes.

Bellow a certain time threshold it’s better to keep things behind a curtain and then draw everything at once to get that pop experience. After that threshold it will feel faster to display what you have rather then wait.

@2 flo: Personally I always run the latest nightly and I have about 1 crash per month which is expected when running daily updates. Have you tried a Firefoxportable version? They use their own profile instead of your system profile.
There is an option in options>general>startup>when Firefox starts. You can choose to always resume your previous session.

I agree with Ken Saunders. A smooth progress bar would give a more satisfying and trustworthy experience.

For me the 2 most important things that make Firefox feel slow is the responsiveness of both the interface and the page movement. The interface should always respond at the same speed. The page should also always scroll at the same speed. Even when the page is still loading or doing something just make it scroll smooth without any jerks . I would rather have that a flash video or javascript app not update the screen and scroll smoothly than to keep updating the screen and have it jerky.

This is OT, but flo’s #2 made me remember that I really want to see some sort of error logging on Linux. It’s horribly annoying that I have to start Firefox through the console to get any form of useful data that can tell me what went wrong.

I think you guys should focus less on the perception of speed and more on the perception of smooth/consistent behaviour.

As Dan suggests, Animations would greatly improve perceived performance!

Also, any lag between the mouse and the interface makes things look very slow. For example the currently prefed off ctrl+tab preview window feels very laggy, not because it is but because the highlight is slower than the mouse.

When doing a lot of actions, Firefox should focus on the GUI. Other tasks like loading (not displaying) web pages, searching the bookmarks and filling/reading the cache should have a lower priority.
If the GUI feels snappy, Firefox feels snappy.
Apart from this: When loading a website, Firefox replaces the old tab content with the new page. If the server takes some time to respond, the user can only recognize that Firefox is working by looking at the small progressbar or at the throbber. But the main part of the screen doesn’t react.
I would suggest a modal overlay (semi-transparent) which shows an animation and thus makes it clear that Firefox is working for the user. I’m not sure about that but we should give it a try.

So long as these handling improvements correspond to speed gains in the code-base, Then I am on for it.

The reason being that if Gecko, and TraceMonkey, keeps improving, we will come to a point where handling improvements meets with speed improvements in the code itself… it something of a sweet spot, which I think would be nice to hit.

As long as you don’t go the way IE did with the progress bar, which keeps moving although absolutely nothing is happening. (Not sure if this has been changed since IE6.)

I guess that behaviour is to give the user hope, but it really is unhelpful. Honesty first, I’d say.

I just totally agree with this, I think it’s the main reason Safari feels faster than Firefox (and the UI Responsiveness on the Mac):

“Things feel faster when they pop in. Currently Firefox does a lot of progressive loading then renders and re-flows the page in front of your eyes.

Bellow a certain time threshold it’s better to keep things behind a curtain and then draw everything at once to get that pop experience. After that threshold it will feel faster to display what you have rather then wait.”

The UI also feels quite outdated, compared to Safari and Chrome, because of it’s lack of UI animations, like moving tabs f.E.

For OS X: Make the UI clickable even if the window is inactive.

On the perception side I think that the first thing to do is to “unlink” the UI from the heavy-duty tasks.

In other terms: the UI must always react, snappy, regardless of what’s happening, to the extreme that a tab might be crashing but the UI still reacts.

This will allow also situations when even if something is taking too much time I can still fire searches and open tabs (even if they will be “white” until the other heavy task will unlock).

I know this is really complex and it can be summarized in: make the UI snappier.

Example: now I’ve just switched to Firefox and clicked a folder in the bookmark bar. On click nothing happened for a bit less of a second, then the menu appeared. It’s just a menu, and still it’s slow. If the data isn’t ready, just pop open the menu and *after* than load the content.

I think that the real answer is detach, detach, detach. It could be read also: do everything in another thread.

Hard, I know.

~

Tricks?

Animations helps, but the time gained is always minimal (you can’t make the user waiting too much, we’re talking about milliseconds).

Use empty UI elements, load them immediately and then load content.

I hope this comment could help. :P

Every time I scroll in Firefox on OS X, it’s like FF is telling me HELLO. I AM A COMPUTER PROGRAM. Scrolling is much smoother and more natural in Safari, in part because it starts out at one pixel per scroll wheel notch.

It’s especially noticeable on trackpads, where you’re used to dragging a page as though it’s right in front of you–and then you scroll in Firefox and you’re reminded that there’s a computer there, the illusion is broken, because why else did that page teleport there instead if moving like a real page?

So yeah, I might switch back to Firefox if it started scrolling at one pixel per notch.

(This comment was written and edited on an iPod, so it might be a bit incoherent.)

There is no difference in scrolling behaviour between Firefox (3.5) and Safari (4) on my end (Vista). It is exactly the same.. I hate the comparisons by now.. if you all love chrome/safari so much for its speed, why don’t you already use it?!

To expand on #3, #5, I submit that stops-and-starts are the main way people judge performance.

For example, I feel like traffic isn’t bad if I’m constantly moving (even when it’s very slowly), compared to stop-and-go traffic (even when the “go” is fast). I feel like I’m getting there quicker even if it’s actually slower.

Animations help because they imply constant progress. So when loading a page, items shouldn’t simply appear. Individual elements (or the whole page all at once), should transition in (whether fade, zoom or some other appropriate effect) in some way that doesn’t tax the CPU or video card.

But worst of all is if animation implies progress that hasn’t been made. Moving backward is worse than stopping.

One very specific example: Compare the “Remember the password on this site” bar’s behavior on Firefox to Chrome: Firefox feels slower because there are lots of (ever-so-slight) stops as it expands out