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