UI Tour

The performance tool’s UI consists of 4 main pieces:

../../../_images/perf-tool-pieces.png

Toolbar

The toolbar contains buttons to:

  • start and stop a recording

  • import a recording you previously saved

  • clear the Recordings pane. Note that if you do this, you lose any recordings you have not saved.

  • filter the markers that are displayed in the Waterfall view

  • switch the active tool in the Details pane

  • access the Settings popup

../../../_images/perf-toolbar.png

Recordings pane

The recordings pane lists all the recordings you have loaded, including any you have made in this session and any you have imported.

../../../_images/perf-recordings-pane.png

At any given time, one recording is selected, and that recording is displayed in the rest of the tool. To select a different recording, click its entry in the pane. To save the recording as a JSON file click “Save”.

Recording overview

This displays an overview of the entire recording, with the x-axis representing time.

../../../_images/perf-overview.png

It contains two elements: an overview of the Waterfall and a frame rate graph.

Waterfall overview

This presents a compressed view of the Waterfall:

../../../_images/perf-waterfall-overview.png

Recorded operations are color-coded using the same scheme as in the main Waterfall view.

Frame rate graph

The frame rate gives you an overview of the browser’s responsiveness during the recording:

../../../_images/perf-frame-rate1.png

See the separate article on frame rate.

Correlating events

Because these elements are synchronized, you can correlate events in one element with events in another.

For example, in the screenshot below a long-running paint operation (shown as a green bar in the waterfall overview) corresponds to a drop in the frame rate:

../../../_images/perf-overview-correlation.png

Zooming in

You can use the overview to select a slice of the recording to examine in more detail. Select a slice, and the main view will be updated to contain just the part selected. In the screenshot below we’ve selected that drop in the frame rate, and can see the long-running paint operation in more detail:

../../../_images/perf-zoomed.png

Details pane

The Details pane shows whichever tool is currently selected. To switch to a different tool, use the buttons in the Toolbar.

Waterfall

The Waterfall presents a view of the work the browser is doing during the recording: executing JavaScript, updating the CSS, updating the page layout, and performing repaints. The x-axis represents time, and the recorded operations are laid out as a waterfall, reflecting the serial nature of the browser’s execution.

../../../_images/perf-waterfall1.png

To learn much more about the Waterfall, see the separate Waterfall page.

Call Tree

The Call Tree is a sampling profiler for JavaScript running in the page. It periodically samples the state of the JavaScript engine, and records the stack for the code executing at the time the sample was taken. Statistically, the number of samples taken in which we were executing a particular function corresponds to the amount of time the browser is spending executing it, so you can identify bottlenecks in your code.

../../../_images/perf-call-tree1.png

To learn much more about the Call Tree, see the separate Call Tree page.

Flame Chart

If the Call Tree tells you, statistically, which functions your site is spending most time executing across the whole recording, the Flame Chart tells you the call stack at any given point during the recording:

../../../_images/perf-flame-chart.png

To learn much more about the Flame Chart, see the separate Flame Chart page.

Allocations

The Allocations view is new in Firefox 46.

The Allocations view is like the Call Tree view, but for allocations: it shows you which functions in your page are allocating the most memory over the course of the profile.

../../../_images/allocations-view-11.png

The Allocations view only appears if you checked “Record Allocations” in the Performance tool settings, before recording a profile

To learn much more about the Allocations view, see the separate Allocations page.