How to Use the Timeline Tool
Google Developers Logo

Progressive Web App Dev Summit

All sessions are available on YouTube, watch now!

Use the Chrome DevTools Timeline panel to record and analyze all the activity in your application as it runs. It's the best place to start investigating perceived performance issues in your application.

Timeline tool

TL;DR

  • Make a Timeline recording to analyze every event that occurred after a page load or a user interaction.
  • View FPS, CPU, and network requests in the Overview pane.
  • Click on an event within the Flame Chart to view details about it.
  • Zoom in on a section of a recording to make analysis easier.

Timeline panel overview

The Timeline panel consists of four panes:

  1. Controls. Start a recording, stop a recording, and configure what information is captured during the recording.
  2. Overview. A high-level summary of page performance. More on this below.
  3. Flame Chart. A visualization of the CPU stack trace.

    You may see one to three dotted, vertical lines on your Flame Chart. The blue line represents the DOMContentLoaded event. The green line represents time to first paint. The red line represents the load event.

  4. Details. When an event is selected, this pane shows more information about that event. When no event is selected, this pane shows information about the selected time frame.

annotated timeline panel

Overview pane

The Overview pane consists of three graphs:

  1. FPS. Frames Per Second. The higher the green bar, the higher the FPS. The red blocks above the FPS graph indicate long frames, which are likely candidates for jank.
  2. CPU. CPU resources. This area chart indicates what type of events consumed CPU resources.
  3. NET. Each colored bar represents a resource. The longer the bar, the longer it took to retrieve the resource. The lighter portion of each bar represents waiting time (the time between when the resource was requested up until the time that the first byte was downloaded). The darker portion represents transfer time (the time between when the first and last bytes were downloaded).

    Bars are color coded as follows:* HTML files are blue. * Scripts are yellow. * Stylesheets are purple. * Media files are green. * Miscellaneous resources are grey.

overview pane, annotated

Make a recording

To make a recording of a page load, open the Timeline panel, open the page that you want to record, and then reload the page. The Timeline panel automatically records the page reload.

To make a recording of a page interaction, open the Timeline panel, then start the recording by pressing the Record button (record button) or by typing the keyboard shortcut Cmd+E (Mac) or Ctrl+E (Windows / Linux). The Record button turns red during a recording. Perform your page interactions, and then press the Record button or type the keyboard shortcut again to stop the recording.

When the recording is finished, DevTools guesses what portion of the recording is most relevant to you, and automatically zooms to that portion.

Recording tips

  • Keep recordings as short as possible. Shorter recordings generally make analysis easier.
  • Avoid unnecessary actions. Avoid actions (mouse clicks, network loads, etc.) that are extraneous to the activity you want to record and analyze. For example, if you want to record events that occur after you click a Login button, don’t also scroll the page, load an image, and so on.
  • Disable the browser cache. When recording network operations, it’s a good idea to disable the browser’s cache from the DevTools Settings panel or the Network conditions drawer.
  • Disable extensions. Chrome extensions can add unrelated noise to Timeline recordings of your application. Open a Chrome window in incognito mode, or create a new Chrome user profile to ensure that your environment has no extensions.

View recording details

When you select an event in the Flame Chart, the Details pane displays additional information about the event.

details pane

Some tabs, like Summary, are present for all event types. Other tabs are only available to certain event types. See the Timeline event reference for details on each record type.

Capture screenshots during recording

The Timeline panel can capture screenshots during a page load. This feature is known as the Filmstrip.

Enable the Screenshots checkbox in the Controls pane before you make a recording to capture screenshots of the recording. The screenshots are displayed below the Overview pane.

timeline recording with filmstrip

Hover your mouse over the Screenshots or Overview pane to view a zoomed screenshot of that point in the recording. Move your mouse left and right to simulate an animation of the recording.

Profile JavaScript

Enable the JS Profile checkbox before you take a recording to capture JavaScript stacks in your timeline recording. When the JS profiler is enabled, your flame chart shows every JavaScript function that was called.

flame chart with JS profile enabled

Profile painting

Enable the Paint checkbox before you take a recording to gain more insight into Paint events. When paint profiling is enabled and you click on a Paint event, a new Paint Profiler tab is displayed in the Details pane that shows much more granular information about the event.

paint profiler

Rendering settings

Open the main DevTools menu and select More tools > Rendering settings to access rendering settings that may be helpful when debugging paint issues. The rendering settings opens up as a tab next to the Console drawer (press esc to show the drawer, if it’s hiding).

rendering settings

Search records

While looking at events you may want to focus on one type of events. For example, perhaps you need to view the details of every Parse HTML event.

Press Cmd+F (Mac) or Ctrl+F (Windows / Linux) while the Timeline is in focus to open a find toolbar. Type in the name of the event type that you wish to inspect, such as Event.

The toolbar only applies to the currently selected timeframe. Any events outside of the selected timeframe are not included in the results.

The up and down arrows move you chronologically through the results. So, the first result represents the earliest event in the selected timeframe, and the last result represents the last event. Every time that you press the up or down arrow, a new event is selected, so you can view its details in the Details pane. Pressing the up and down arrows is equivalent to clicking on an event in the Flame Chart.

find toolbar

Zoom in on a Timeline section

You can zoom in on a section of a recording to make analysis easier. You use the Overview pane to zoom in on a section of the recording. After zooming, the Flame Chart is automatically zoomed to match the same section.

zoom in on a section of a timeline recording

To zoom in on a Timeline section:

  • In the Overview pane, drag out a Timeline selection with your mouse.
  • Adjust the gray sliders in the ruler area.

Once you have a section selected, you can use the W,A, S, and D keys to adjust your selection. W and S zoom in and zoom out, respectively. A and D move left and right, respectively.

Save and load recordings

You can save and open recordings by right-clicking inside the Overview or Flame Chart panes and selecting the relevant option.

save and open recordings

Authors
Profile photo of Kayce Basques
Kayce Basques

Technical Writer at Google

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License. For details, see our Terms of Service.

Previous
The RAIL Performance Model
Next
Timeline Event Reference