Website navigation

Note

A new version of this section with explanatory figures is coming soon!

After opening the website, follow this guide:

  1. Select your profiling session from the “Please select a profiling session” combobox and wait until the timeline loads.
  2. In the timeline, you can browse the thread/process tree (including expanding and collapsing threads/processes) on the left and see how long the thread/process ran for on the right in form of timeline blocks.
  3. Each thread/process has a corresponding name, PID, and TID.
  4. Each block has red and blue parts. Red parts correspond to on-CPU activity while blue parts correspond to off-CPU activity. Not every off-CPU activity may have been captured depending on the off-CPU sampling frequency chosen when profiling.
  5. Right-click a thread/process block to check the exact runtime of the thread/process, the perf-sampled runtime, available analysis results (e.g. flame graphs), and the stack trace of a function which spawned the thread/process if available. If the difference between the sampled and exact runtime is significant (the threshold can be adjusted by the user in the settings above the timeline view), the sampled runtime will be shown in red.
  6. Click an analysis result of your choice in a thread/process context menu to open it in a new internal window. You can open as many windows as you wish and every window can be freely moved, resized, and collapsed (by clicking the eye icon in a title bar). All windows persist across profiling sessions (so you can e.g. open two windows side-by-side from two different sessions).
  7. For flame graphs, you can change the profiling metric, switch between non-time-ordered and time-ordered graphs, search for a specific phrase (regular expressions are also supported), interact with the graphs themselves (e.g. zoom in/out), and download them (as PNG for now). For performance reasons, blocks corresponding to less than a specific percentage of samples will be collapsed ("(compressed)" will be shown instead, you can click it to expand it). This behaviour can be adjusted in the settings above the timeline view.
  8. You can refresh the timeline (e.g. when you have changed the off-CPU timeline display scale) by clicking the “Refresh” icon next to the settings icon above the timeline view.
  9. You can open general analysis results (e.g. roofline plots) by clicking the “General analyses” icon next to the refresh icon above the timeline view.
  10. When checking the spawning stack trace of a thread/process, you can hover over functions to see the corresponding source code files and line numbers if available. If a function is green, you can also click it to open the source code inside the website, with the spawning line highlighted.
  11. When checking flame graphs, you can right-click a function block to open the menu, where you can either plot the block on a roofline plot or open the corresponding source code (if available) inside the website, with most-metric-contributing lines highlighted in different shades of red/blue along with an option to hover over line numbers to check the sampled metric values.
  12. You can use regular expressions for replacing block names in flame graphs. Click the magnifying-glass-like icon next to the search box and follow the instructions (you can enter your regex in the search box beforehand to see its matches if you want). If you want to edit the replacements, right-click the same icon to open the menu with your entered replacements, click the replacement you want to change or remove, and follow the instructions.
  13. If you want to quickly refresh your window or revert its state to the original one (one use case for this is going back to the beginning when analysing a complex flame graph with lots of custom regex-based replacements), click the “refresh” icon in the window header.