Skip to content

firefox-devtools/profiler

Repository files navigation

Firefox Profiler

Matrix

The Firefox Profiler visualizes performance data recorded from web browsers. It is a tool designed to consume performance profiles from the Gecko Profiler but can visualize data from any profiler able to output in JSON. The interface is a web application built using React and Redux and runs entirely client-side.

Mozilla develops this tool to help make Firefox silky smooth and fast for millions of its users, and to help make sites and apps faster across the web.

Screenshot of the Firefox Profiler

Usage

Visit profiler.firefox.com 🚀

This project is live on https://profiler.firefox.com/. The website includes instructions on how to get going to start recording and viewing performance profiles.

Accessibility: Assistive technology support

The Profiler was tested with recent versions of the following assistive technology:

NVDA (Windows) on Firefox and Chrome browsers
VoiceOver (Mac OS X) on Chrome
Orca (Linux) on Firefox

If you experience problems using any of the above technologies, please file a bug.

If you would like to help us test on other assistive technologies or improve the existing code, we would love your contributions!

Development

You will need a recent enough version of Yarn 1 (Classic), version 1.10 is known to work correctly. You can install it using npm install -g yarn. Please refer to its documentation for other possible install procedures.

To download and build the Firefox Profiler web app run:

git clone git@github.com:firefox-devtools/profiler.git
cd profiler
yarn install
yarn start

Flow is used for type checking. VSCode users can install the "Flow Language Support" extension, and disable VSCode's built-in TypeScript extension in the workspace via the setup instructions here.

You can also develop the Firefox Profiler online in a pre-configured development environment.

Open in Gitpod

Please look at our gitpod documentation for more information.

For more detailed information on getting started contributing. We have plenty of docs available to get you started.

Contributing Find out in detail how to get started and get your local development environment configured.
Code of Conduct We want to create an open and inclusive community, we have a few guidelines to help us out.
Developer Documentation Want to know how this whole thing works? Get started here.
Source Files Dive into the inner workings of the code. Most folders have a README.md providing more information.
End-User Documentation These docs are customized for actual users of the profiler, not just folks contributing.
Gitpod documentatation Start here if you want to set up a work space on gitpod.

Discussion

Say hello on Matrix in the Firefox Profiler channel (#profiler:mozilla.org).

License

MPL v2 is designed to encourage contributors to share modifications they make to the code, while still allowing them to combine the code with code under other licenses (open or proprietary) with minimal restrictions.

We are very grateful to the the zlib compression library (Jean-loup Gailly, Mark Adler and team) for their contribution to the project.