2011-06-23 5 views
1

Я ищу некоторые результаты теста производительности для -finstrument-functions.Накладные расходы GCC -finstrument-

Я планирую использовать его в качестве инструмента для профилирования, и поэтому мне нужно знать, не слишком ли высоки накладные расходы (поэтому он не искажает результаты).

+0

Если вы хотите сделать код быстрее, [рассмотрите этот метод.] (Http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024 # 378024) Инструментальные функции - популярный, но не очень хороший способ сделать это. –

ответ

4

Накладные расходы - это 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.

Смежные вопросы