Я использую метод случайная пауза , как в в этом примере .
Идея в том, что вы хотите увидеть, это трассировки стека, взвешенные по времени настенных часов, за которое они несут ответственность. Сайты вызова функций, ответственные за значительное время, отображаются преимущественно.
Тогда вы просто посмотрите на них. Следы стека говорят вам, почему они выполняются.
Из этого вы можете определить, есть ли способ обойтись без них.
Если вы это сделаете, то время, которое вы сэкономите, будет таким же, как доля времени, которое они находились в стеке.
Примечание. Если вы сделаете это, вам не нужно заботиться о том, сколько раз была вызвана функция с этого сайта (или из любого места) или сколько времени потребуется для ее выполнения.
Все, что вам нужно, это заботиться о том, чтобы сайт вызовов находился в стеке как минимум на двух выборках и что его можно удалить.