函数调用的开销

C/C++函数调用的开销:1、函数传递参数的拷贝开销;2、上一个调用函数的上下文的保存。对于传递参数的开销而言,传递的参数越多开销就越大;对于保存当前程序上下文所花费的开销而言,函数越复杂需要花费的开销就越大。说说如何避免开销。

 

1、  使用inline函数,inline会在函数调用处展开。

2、  使用宏取代非常简单短且调用频繁的函数,在查看Linux内核代码的时候,你会发现非常多的宏。因为内核代码非常注重速度,使用宏是非常有必要的。我们可以模仿内核代码的写法,在自己的工程代码中使用一些“宏函数“。

3、  减少递归函数的使用。递归函数是没有办法inline展开的。且递归的嵌套层数可能很深,时间和空间的开销都比较多。

 

减少函数调用的优点和缺点:优点是减少了函数调用的开销,代码运行速度更快。缺点是代码块占用内存更多,因为没有使用代码的“公用部分“。另外一个缺点是代码编写的难度增大。

posted @ 2014-03-10 11:14  积跬步,致千里  阅读(3368)  评论(0编辑  收藏  举报