时间:2021-05-19
内联的语法
在类声明中定义方法;
内联方法放在类声明之外,但必须出现在头文件中,且内联方法声明中使用inline标识;
注:inline只是对编译器的建议,是否内联的决定权在编译器;
内联节省的开销
函数调用开销
调用间优化 优秀的编译器可是内联方法的边界难以区分(将代码内联后,对代码进行重新排列)
内联带来的问题
代码膨胀(空间开销)
由于代码膨胀带来的页面缓存命中率下降
编译时间增加
修改文件后相关文件都需要重新编译;
由于函数边界模糊,该内联函数遇到问题后不好排查;
内联函数的建议
优化时,只针对高频代码内联;
对于调用频率高的(80%以上场景都会走到的路径):
函数规模<5行:总是内联;
5-20行,将高频率的调用点选择性内联;
超过20行,重写方法,体现出快速路径并将其内联;
内联的技巧
将内联工作放到开发周期后期
使用条件内联,通过宏和编译选项的技巧控制在开发初期不内联,而到开发后期再加上自定义内联选项进行内联;
SPARC体系结构中的内联
SPARC中有充足的寄存器,在限定的调用深度范围内几乎没有调用返回的性能损失(无须在调用时存储就的寄存器内容),所有,这种体系结构的内联效果甚微,一般不用考虑内联;
以上所述就是本文的全部内容了,希望大家能够喜欢。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、VC++定义自定义控件与delphi,VB有些差异。delphi,vb在file-new-other中建立。vc++在工具栏中就有自定义控件,但必须加入控件
本文实例讲述了VC++编程获取窗口句柄的方法。分享给大家供大家参考,具体如下:在VC++编程中常需获取控件或窗体句柄,下面总结了几种方法,还希望大家能多多补充。
vc++和c++的区别是C++是一门语言,duVC++是一个编译工具,VC++使用的是C++语言,其他编译工具也可以集成C++语言,如DEV-C++。 C++
visualc可以卸载的,它的卸载和其他一般的软件的卸载一样的。 MicrosoftVisualC++(简称VisualC++、MSVC、VC++或VC)是微
QtDesigner用于像VC++的MFC一样拖放、设计控件PyUIC用于将QtDesigner生成的.ui文件转换成.py文件QtDesigner和PyUIC