如何使用内联函数加快C ++执行速度?

时间:2013-06-11 16:26:19

标签: c++ class

我正在将FORTRAN Monte Carlo程序转移到C ++,并发现当完全转移时,C ++程序的运行速度几乎是FORTRAN程序的两倍。我正在尝试起草C ++程序的第二个版本,其中许多函数通过使用类结构来加速,以加快速度;但是,有些功能超过40或50行,我已经读过,将大型功能排成一行可能会降低程序速度。在将函数排成一行时有什么太大的问题,如何加速C ++程序(没有多处理),这样C ++程序可以像FORTRAN程序那样快速或接近快速执行?

1 个答案:

答案 0 :(得分:1)

C ++中的内联只是对编译器的建议。如果函数太复杂,大多数现代编译器都不会内联它。编译器将尽其所能在任何情况下优化调用,即使没有“inline”关键字,只要实现在编译时可用即可。还有一些编译器会在编译单元之间进行内联,但这种情况并不常见。

在任何情况下,函数调用都不太可能占据您的处理时间。你可能想要分析你的代码,找出瓶颈实际所处的位置,然后再投入太多精力进行微程序优化,编译器在任何情况下都可能为你做。