我有一些非常复杂的c ++代码,它在实时系统中使用,因此对速度非常敏感.它是在Linux上开发的,为了加快它的速度,许多函数都标有"inline"关键字并移入头文件以允许内联.
现在我将此代码移植到Windows(msvc 10.0,Windows 7),它运行速度慢了约30%.在做了一些分析后,我发现问题基本上是很多函数没有内联.当我使用"__forceinline"时,我很容易看到加速大约10-20%.
有人对此有解释吗?仅仅是msvc中的算法更加保守吗?或者我做错了什么,比如错过配置选项?
您需要检查MSVC优化设置:
Project Properties -> C/C++ -> Optimization
Run Code Online (Sandbox Code Playgroud)
有一个调用的设置"Favor size or speed"实质上改变了编译器准备做多少内联.
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |