Накладные расходы - это 2 дополнительных вызова инструментальных функций для каждого вызова пользовательской функции.
Это всего лишь 3-5 * 2 asm инструкции. Кроме того, сами инструментальные функции
__cyg_profile_func_enter
__cyg_profile_func_exit
будет потреблять время. Но если вы будете использовать простой -finstrument-functions
, код cyg_profile будет вашим.
Даже если функция встроена, все еще вызывается __cyg_profile *. Итак, оцените количество вызовов функций в целевом приложении и умножьте на 40-100 cpu тиков служебных данных для каждого вызова.
Возможно, вас заинтересуют пробоотборники пробоотбора, такие как oprofile
или ядро linux perf
.
Если вы хотите сделать код быстрее, [рассмотрите этот метод.] (Http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024 # 378024) Инструментальные функции - популярный, но не очень хороший способ сделать это. –