我们的服务器项目有好几万行代码,昨天想分析一下其性能瓶颈,看看有没可优化的地方。
gcc 提供了 __PRETTY_FUNCTION__ 宏,放在哪个函数体内,就表示哪个函数的名字,和 __LINE__ 类似。利用这个宏,我们可以向每个函数体内插入几行代码,记录下被调用的 Log。
我用 Python 写了一个脚本,分析所有 .cpp 文件中的 function,在函数体前面加上三行代码 :
#if __FUNC_CALL_LOG__
LOGOUT("FUNC CALL : %s\n", __PRETTY_FUNCTION__);
#endif
除此之外,还有写一个去掉所有分析代码的方法。
大约 100 行 Python 代码就可以把功能做出来,试了下,达到了预期效果。剩余的事情就是利用 Python 分析服务器产生的 Log,看看哪些函数被调用次数最多,寻找优化的办法。
时间: 2024-11-11 23:43:42