Skip to content

Performance investigation guide

Shagiakhmetov Timur edited this page Mar 8, 2019 · 4 revisions

Tips to solve a performance issue:

  1. If you do not know in advance what to look for, then go to most changed snapshots page. Select the period and mode. The default there is 3 months period and snapshots mode. In this mode, a list of the most changed snapshots is displayed. How it works: To calculate the changes, the period is divided in half. In each half, snapshots are grouped by app and label and sorted by parameter in ascending order. For each app and label, the snapshot corresponding to p10 (10% percentile) from the first half and p90 (90% percentile) from the second one is selected. The final list is sorted by p90 and p10 difference values, i.e. just get the list without peaks. In the Methods mode, exclude children and Methods include children take 50 of the most modified snapshots, similar to the Snapshots mode, and a list of the most modified methods is calculated with or without children methods. These modes work much slower than Snapshots.
  2. You can find problematic snapshots on the page with a list of snapshots by selecting the desired app (by default, this is all, but sometimes it is useful to look at a specific application, for example, iphone) and sort by the parameter of interest.
  3. If you would like to know how often and where a particular method is called from, then the find method usage page is irreplaceable. From this page you can go to the page with graphs.
  4. If you already know what request you need to improve (for instance, you found problematic snapshot using step 1 or 2) then may go to methods tree page. Select the desired period: 1 month if you need to analyse recent changes or six months to analyse older changes. Select which params changes would you like to see on graphs, for example, wt and ct - the total time and the number of method calls in the request.
  • You can go deep into one of the methods from the children stat section and looking at the table to find out which method is the most heavy.

  • You can go to the page with a list of all methods and find the most interesting or most expensive resource to go to the page with graphs (methods tree page) or find uses of this method in other snapshots (Find usage of method page)

  • Faster to find a hard method, go to flame graph page.

  • If you want to find out why the method began to work slower from a certain date, then snapshots comparison interface will be helpful. The "Diff interface" button uses the period from the date selection filter. Accordingly, if you need to see diff for 2 specific dates, it is convenient to first select them on the graph on methods tree page, and then go to snapshots comparison page.

  • You can us also use flame graph page in diff mode to find out what started to work more slowly over time.

Clone this wiki locally