You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



You are here: Mozilla Quality Assurance > Help Mozilla Performance

Help Mozilla Performance

by Christine Begle

We need help identifying performance problems in Mozilla. We also need data: timing data, so we know how much the performance problem affects usability, and profiling data, so we can start pinpointing where the problem may be. How can you help:

Report Performance Bugs

If you have noticed a performance problem, first check the list of performance bugs. If you can't find a bug for your problem, please file one. If you do find your bug, you can always add data that will make the bug more useful.

In addition to all the normal bug stuff, the kind of information that you should put in a performance bug report includes:

  • Mozilla Build ID (the number in the lower-right hand corner of your browser window)
  • Platform, operating system, processor, amount of memory
  • Steps / URLs that demonstrate the problem
  • How long it takes to perform the test in Mozilla
  • How long it takes to perform the same test in Navigator 4.x
  • Please edit any performance bug you file, and add the perf keyword to the Keywords field so we can find and track performance problems.

Provide Profiling Information

Profiling information from a tool such as Rational Quantify or another profiling tool will help us understand performance bugs.

If you are running on Linux, you can generate information using Jprof, the Mozilla profiling tool.

  1. Check out Jprof, the profiling tool, build Mozilla with the profiler enabled, and set up your environment.
  2. Pick something to profile from the laundry list of performance bugs. For example, you might want to help figure out why scrolling is slow as described in bug 19467. In that bug, it says scrolling with the arrow keys or MS mouse wheel seems very slow compared to Navigator 4.x.
  3. Start Mozilla, and do a trial run of your test. You'll need a watch to measure time in seconds. You will need to measure:
    • Number of seconds from the time you start Mozilla until the time you are ready to begin your test.
      For example, to test scrolling, you will need to start Mozilla and load a long page. You want to know how many seconds it takes from the time you start Mozilla until that page is loaded.
    • Number of seconds from the beginning of the test until the end of the test.
      Once the page is loaded, restart your timer. Scroll to the bottom using the down arrow on your keyboard. Stop timing when you reach the bottom of the page.
  4. Set the jprof flags as described in the instructions. For example,
    setenv JPROF_FLAGS "JP_START JP_FIRST=20"
    The value of JP_FIRST should be the first time you measured.
  5. Restart Mozilla. This time, since you've set JPROF_FLAGS to include JP_START, profiling will be enabled. Run the test, and shut down Mozilla.
  6. Generate the readable output:
    ./jprof mozilla-bin ./jprof-log > output.html
  7. Attach output to the bug. Include the steps you used to generate that data, and how long it took to complete the test. It would also be interesting to know how long it takes to complete the same test in Navigator 4.x.

Need help?

Post a message to the netscape.public.mozilla.performance newsgroup, or join the #mozilla IRC channel on irc.mozilla.org.