我正在寻找-finstrument-functions
的一些效果测试结果。
我正在考虑将它用作分析工具,因此我需要知道开销是否过高(因此不会破坏结果)。
答案 0 :(得分: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
。