Addon to control the Gecko Built-in Profiler
JavaScript HTML CSS
Clone or download
Pull request Compare This branch is 1 commit ahead, 23 commits behind devtools-html:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
icons
resources
transition
.eslintrc
.gitignore
.web-extension-id
README.md
background.js
content-home.js
content.js
gecko_profiler.update.rdf
gecko_profiler.xpi
gecko_profiler_legacy.xpi
gecko_profiler_transition.xpi
manifest.json
options.html
options.js
package.json
popup.css
popup.html
popup.js
updates.json

README.md

Gecko Profiler

This add-on lets you collect profiles from Firefox, and open those profiles in perf-html.

Installation

The easiest way to install it is to go to https://perf-html.io/ and click the link on there.

Doing so will install the file gecko_profiler.xpi from this repository.

Usage

The profiler is automatically started on startup. It adds a toolbar button to your main toolbar. The button's icon is blue if the profiler is running and gray if the profiler is stopped.

Profile data is stored in a circular buffer. As soon as the buffer fills up for the first time, old data is discarded as new data is added. That means that you can leave the profiler running, and collect a snapshot of the most recent couple of seconds at any time.

You can control the profiler with two keyboard shortcuts:

  • Ctrl+Shift+1: Stop / Restart profiling
  • Ctrl+Shift+2: Capture the profile. This captures the current contents of the profiler buffer, opens a tab with perf-html at https://perf-html.io/, and sends the profile to it.

If you want to run your own perf-html instance or want profiles to be sent to a different site that you're developing, you can change the “Reporter URL” preference of this add-on on about:addons.

Development

Make sure you have somewhat recent versions of node and npm installed. Then:

$ git clone https://github.com/devtools-html/Gecko-Profiler-Addon/
$ cd Gecko-Profiler-Addon/
$ npm install
$ npm start

The npm start command runs Firefox Nightly by default. To run other releases of Firefox use the following npm start commands.

Beta Firefox

npm start --geckoprofiler:firefox=beta

Release Firefox

npm start --geckoprofiler:firefox=firefox

Release config

Or you can set the local config to keep the default for the life of your local repository and no longer need to pass the config on the command line.

npm config set geckoprofiler:firefox beta
npm start

Known issues

  • Does not support getting profiles from Firefox for Android.