首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

内联函数体内出现循环,那么执行函数体内代码的时间为什么要比函数调用的开销大。解决办法

2012-04-26 
内联函数体内出现循环,那么执行函数体内代码的时间为什么要比函数调用的开销大。1)如果函数体内的代码比较

内联函数体内出现循环,那么执行函数体内代码的时间为什么要比函数调用的开销大。
1) 如果函数体内的代码比较长,使用内联将导致内存消耗代价较高。
(2) 如果函数体内出现循环,那么执行函数体内代码的时间要比函数调用的开销大。

1)我能理解。但对于(2)
内联函数体内出现循环,那么执行函数体内代码的时间为什么要比函数调用的开销大。
函数调用多了保护现场跟恢复现场,然后要执行函数体。
用内联函数 就直接执行函数体,牺牲点空间而已。
为什么这里说 执行函数体内代码的时间要比函数调用的开销大

[解决办法]
它的意思是:当出现循环时,一般情况下循环的时间会比函数调用所用的时间多得多,所以内联优化效果不明显,所以不优化.

但是实际上出现循环时也可能被内联,这取决于编译器的喜好.
[解决办法]
那只是说用于调用函数的开销要小于执行函数体的开销,不是说因为调用的缘故整个函数变快了。

当调用函数的开销与函数体自身的开销相比无足轻重了,再使用内联函数就属多此一举。

热点排行