Служебные функции GCC -finstrument-functions - PullRequest
1 голос
/ 23 июня 2011

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

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

1 Ответ

4 голосов
/ 23 июня 2011

Служебные расходы - это 2 дополнительных вызова функций инструментов для каждого вызова пользовательской функции.

Это всего лишь 3-5 * 2 ассемблерных инструкций. Кроме того, сами инструменты работают

 __cyg_profile_func_enter 
 __cyg_profile_func_exit 

будет занимать время. Но если вы захотите использовать обычный -finstrument-functions, код функций cyg_profile будет вашим.

Даже если функция встроена, __cyg_profile * все еще вызывается. Итак, оцените количество вызовов функций в целевом приложении и умножьте на 40–100 тактов служебной нагрузки на каждый вызов.

Вас могут заинтересовать профилировщики выборки, например oprofile или ядро ​​linux perf.

...