函数调用的开销
C/C++函数调用的开销:1、函数传递参数的拷贝开销;2、上一个调用函数的上下文的保存。对于传递参数的开销而言,传递的参数越多开销就越大;对于保存当前程序上下文所花费的开销而言,函数越复杂需要花费的开销就越大。说说如何避免开销。
1、 使用inline函数,inline会在函数调用处展开。
2、 使用宏取代非常简单短且调用频繁的函数,在查看Linux内核代码的时候,你会发现非常多的宏。因为内核代码非常注重速度,使用宏是非常有必要的。我们可以模仿内核代码的写法,在自己的工程代码中使用一些“宏函数“。
3、 减少递归函数的使用。递归函数是没有办法inline展开的。且递归的嵌套层数可能很深,时间和空间的开销都比较多。
减少函数调用的优点和缺点:优点是减少了函数调用的开销,代码运行速度更快。缺点是代码块占用内存更多,因为没有使用代码的“公用部分“。另外一个缺点是代码编写的难度增大。