Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

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).

 

about:jank

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.

 

 

 

about:telemetry

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.

 

 

about:startup

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.

 

 

about:cc

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.

 

about:ccdump

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

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 https://clicky.visophyte.org/files/labs/about-nosy/

 

MemChaser

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.

 

MozRegression

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.

Document Tags and Contributors

 Contributors to this page: yfdyh000, Sheppy, teoli, emorley, Huan, nnethercote, ziyunfei, felipc
 Last updated by: yfdyh000,