gpt4 book ai didi

c++ - 为什么 MSVC 10.0 编译器经常忽略 inline 关键字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:05 27 4
gpt4 key购买 nike

我有一些非常复杂的 c++ 代码,用于实时系统,因此对速度绝对敏感。它是在 Linux 上开发的,为了加快它的速度,许多函数都标有“内联”关键字,并移至头文件中以允许内联。

现在我将此代码移植到 Windows(msvc 10.0、Windows 7),它的运行速度大约慢了 30%。在做了一些分析之后,我发现问题基本上是很多函数没有内联。当我改用“__forceinline”时,我很容易看到速度提高了 10-20%。

有人对此有解释吗?仅仅是因为 msvc 中的算法更加保守吗?还是我只是做错了什么,比如缺少配置选项?

最佳答案

您需要检查您的 MSVC 优化设置:

Project Properties -> C/C++ -> Optimization

有一个名为 “Favor size or speed” 的设置可以显着改变编译器准备执行的内联量。

关于c++ - 为什么 MSVC 10.0 编译器经常忽略 inline 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12729822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com