This is an archived page. It's not actively maintained.

Existing Tools

A non-complete list of existing tools to help debugging performance and memory problems.

SPS - Built-in profiler

profiler.pngDescription: Add-on that runs the built-in profiler, retrieves the data and parses it on a web service, displaying a call tree and a timeline with responsiveness measurements.
Good for: Figuring out where time is being spent in the code / what is hanging Firefox
URL: geckoprofiler.xpi on GitHub
How to use: After installing the add-on, click on the icon in the Add-ons bar (status bar) to open an widget with Start/Stop and Analyze buttons. More details at Profiling with the built-in profiler. The profiling build can be used to get accurate call stacks (currently Mac only).



aboutjank.PNGDescription: Add-on that runs the built-in profiler and displays the retrieved data on about:jank
Good for: Figuring out where time is being spent in the code / what is hanging Firefox
URL: about:jank on AMO
How to use: Open about:jank for the first time to activate the profiler, then refresh or reopen the page to see the accumulated data.





aboutelemetry.pngDescription: Displays the data gathered by telemetry for the current profile: histograms, slow SQL statements and a start-up timeline.
Good for: Getting performance data for the current profile
URL: about:telemetry on AMO
How to use: Make sure that telemetry reporting is on (Options -> Advanced -> Submit performance data) and open about:telemetry.




aboutstartup.PNGDescription: This addon displays startup timings as exposed by a Gecko API at the about:startup.
Good for: Getting startup performance information for the current profile
URL: about:startup on AMO
How to use: Install the add-on and open about:startup.




aboutcc.PNGDescription: Analyzes the cycle collection graphs and helps find leaks (specially documents) and missing CC optimizations.
Good for: Finding leaked documents
URL: about:cc on bugzilla
How to use: Install the add-on (a restart is recommended), open about:cc.  First click on Run Cycle Collector, and then on Find Documents.



aboutccdump.pngDescription: More graphical interface to about:cc. Helps analyze cycle collection graphs and finding leaks
Good for: Finding cycles that are causing memory leaks
URL: about:ccdump on AMO
How to use: See Jan Odvarko's post for detailed information.



about-nosy-overview-scaled.pngDescription: Graphical interface for jsprobes. Helps analyze which tab is consuming the most resources
Good for: Seeing the memory and CPU usage of your tabs and extensions (that live in compartments)
URL: about:nosy on Github
How to use: See Andrew Sutherland's post for detailed information. Builds are at



memchaser.pngDescription: Displays GC/CC and memory usage information on the Add-ons bar (status bar). Also toggles the memory reporting logging.
Good for: Track GC and memory usage over time during a regular browsing session.
URL: MemChaser on AMO
How to use: Install the add-on and open the Add-ons bar.



Description: Python script that greatly helps you binary-search a regression bug through the nightly builds by automatically downloading and running each build with a fresh profile.
Good for: Finding the nightly regression range for a bug that you're not sure when was introduced.
URL: MozRegression on GitHub
How to use: First find a nightly build date that you're sure the problem exists, and one where you're sure it doesn't. Then run mozregression --good=yyyy-mm-dd --bad=yyyy-mm-dd and the script will guide you on finding the regression.


Layout painting flash

Description: Activating this option, the rendered content will be flashed with a random color every time it's painted on screen
Good for: Finding unneccessary painting or invalidation problems
URL: Set nglayout.debug.paint_flashing to true in about:config
How to use: Set the pref in about:config. More information on this post.


Logging GC/CC times

Description: Logs the timing for GC/CC runs to the Error Console.
Good for: Figuring out if Garbage/Cycle collection is taking too long.
URL: Set javascript.options.mem.log to true in about:config
How to use: Set the pref in about:config. Open the Error Console to view the logged information.