浅谈VC++中的内联
内联的语法
在类声明中定义方法;
内联方法放在类声明之外,但必须出现在头文件中,且内联方法声明中使用inline标识;
注:inline只是对编译器的建议,是否内联的决定权在编译器;
内联节省的开销
函数调用开销
调用间优化 优秀的编译器可是内联方法的边界难以区分(将代码内联后,对代码进行重新排列)
内联带来的问题
代码膨胀(空间开销)
由于代码膨胀带来的页面缓存命中率下降
编译时间增加
修改文件后相关文件都需要重新编译;
由于函数边界模糊,该内联函数遇到问题后不好排查;
内联函数的建议
优化时,只针对高频代码内联;
对于调用频率高的(80%以上场景都会走到的路径):
函数规模<5行:总是内联;
5-20行,将高频率的调用点选择性内联;
超过20行,重写方法,体现出快速路径并将其内联;
内联的技巧
将内联工作放到开发周期后期
使用条件内联,通过宏和编译选项的技巧控制在开发初期不内联,而到开发后期再加上自定义内联选项进行内联;
SPARC体系结构中的内联
SPARC中有充足的寄存器,在限定的调用深度范围内几乎没有调用返回的性能损失(无须在调用时存储就的寄存器内容),所有,这种体系结构的内联效果甚微,一般不用考虑内联;
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关文章
VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法
今天在编写VC++ loadlibrary()加载三方dll是总是失败,并且返回错误码:126,这里就为大家分享一下具体的解决方法...2021-03-15- 这篇文章主要介绍了VC++实现选择排序算法简单示例,代码简洁易懂,有助于读者对数据结构与算法的学习,需要的朋友可以参考下...2020-04-25
VC++中HTControl控制类使用之CHTDlgBase对话框基类实例
这篇文章主要介绍了VC++中HTControl控制类使用之CHTDlgBase对话框基类,是比较丰富而实用的功能,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++的if语句应用范围分析,对VC++初学者有很好的参考学习价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了Vc++ 控件List Control用法总结的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++ 中ListCtrl经验总结的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++进度条process Bar的用法,是进行VC++应用程序开发中非常常见的实用技巧,需要的朋友可以参考下...2020-04-25
VC++中HTControl的CHTButton按钮控件类用法实例解析
这篇文章主要介绍了VC++中HTControl的CHTButton按钮控件类用法,对于大家进行VC++项目开发有一定的帮助作用,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++基于Dx实现的截图程序示例代码,比较实用的功能,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++实现文件与应用程序关联的方法,涉及VC++针对注册表的相关操作技巧,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家介绍了VC++ 6.0 C语言实现俄罗斯方块详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要介绍了VC++创建msi文件的方法,对于应用程序的开发有一定的借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了VC++角色游戏中的人物初始化模块,对大家学习VC++有一定的帮助,需要的朋友可以参考下...2020-04-25
VC++实现CStdioFile写入及读取文件并自动换行的方法
这篇文章主要介绍了VC++实现CStdioFile写入及读取文件并自动换行的方法,很实用的功能,需要的朋友可以参考下...2020-04-25- 这篇文章主要为大家详细介绍了DEVC++实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 本文给大家汇总介绍了5种VC++中获取系统时间的方法,十分的简单实用,有需要的小伙伴可以参考下。...2020-04-25
- 这篇文章主要介绍了VC++获得当前进程运行目录的方法,可通过系统函数实现该功能,是非常实用的技巧,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了Python 如何定义匿名或内联函数,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-08-02
VC++文件监控之FindFirstChangeNotification
因为ReadDirectoryChangesW 上次测试发现不能多级目录监控,所以尝试用FindFirstChangeNotification来实施文件监控,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了VC++中进程与多进程管理的方法,以实例形式详细分析了进程与多进程管理中所涉及的进程、子进程、进程的互斥运行与进程的结束等概念与具体实现方法,非常具有参考借鉴价值,需要的朋友可以参考下...2020-04-25