Если вы работаете на процессоре AMD, CodeAnalyst бесплатен и может это делать (по крайней мере, при профилировании по времени); на самом деле вы можете «увеличивать» и уменьшать масштаб, наблюдая за тем, что отнимает больше всего процессорного времени от процессов до функций, вплоть до отдельных инструкций по сборке.
Однако имейте в виду, что для получения значимых результатов для этого разрешения с использованием профилирования по времени вы должны запускать критическую часть кода несколько раз, в противном случае полученная вами статистика не имеет особого смысла.
Кстати, на мой взгляд, вы должны забыть о меньшем количестве вызовов функций => более быстрой идее. Если стоимость вызова функции больше, чем ее «полезная нагрузка», компилятор должен иметь возможность самостоятельно определить, удобно ли встроить вызов, а в некоторых случаях даже слишком большое встраивание может замедлить код.