String changes make Firefox 3% faster

Darin checked in some major string changes a few hours ago (231995). Estimations based on Firefox Tinderbox data:

Measure Windows (gabrielle) Linux (redwood)
Startup (Ts) 3.1% faster (noisy data) 3.4% faster (noisy data)
New window (Txul) 3.8% faster 3.0% faster
Page load (Tp) 2.6% faster 3.3% faster
Code size (Z) 2.1% smaller 1.2% smaller

(Darin made similar estimations and included data for Seamonkey.)

I plan to compare download size and memory use once a new official build is avaiable.

10 Responses to “String changes make Firefox 3% faster”

  1. Cell Says:

    Awesome! Are we going to see more string changes to that will provide further speed boosts?

  2. M.ther Says:

    A little optimization here, a little optimization there, and when we reach one dot oh Firefox will probably outspeed a preloaded IE ;)

    (I really shouldn’t follow the daily updates, takes all the fun away from the big releases, dammit)

    (dwunk, but, then again, that’s always)

  3. c01done Says:

    Damn fine work as always ….

  4. Mike Goodspeed Says:

    What’s funny is that now people can actually say “It just feels faster!” — and be right!

  5. Mike Goodspeed Says:

    What’s also a bit amazing is that this was all done by changing 8 lines, and replacing 2 declarations with 1.

    (Yes, I know we are now using a different data type that is written better, but where was that checked in? Was it always there and we just now hooked it up?)

  6. Pike Says:

    Mike I think you’re just looking at the stuff that landed in the Firebird specific part of the code, this change mainly affected the underlying Mozilla code:

    11215 lines added, 5120 lines removed.

  7. Jordan Says:

    Do you know if today’s builds have these fixes?

  8. Jordan Says:

    Do today’s unofficial builds contain these changes?

  9. Jesse Ruderman Says:

    Yes, there are more string changes coming.

  10. Jesse Ruderman Says:

    On Windows:
    * The download size only decreased by 0.5% (33KB).
    * Memory usage was too noisy for me to tell whether there was a difference.