Служебные расходы - это 2 дополнительных вызова функций инструментов для каждого вызова пользовательской функции.
Это всего лишь 3-5 * 2 ассемблерных инструкций. Кроме того, сами инструменты работают
__cyg_profile_func_enter
__cyg_profile_func_exit
будет занимать время. Но если вы захотите использовать обычный -finstrument-functions
, код функций cyg_profile будет вашим.
Даже если функция встроена, __cyg_profile * все еще вызывается. Итак, оцените количество вызовов функций в целевом приложении и умножьте на 40–100 тактов служебной нагрузки на каждый вызов.
Вас могут заинтересовать профилировщики выборки, например oprofile
или ядро linux perf
.