如何使用内联函数加快c++的执行速度

How do I speed up C++ execution with in-line functions?

本文关键字:c++ 执行 速度 何使用 函数      更新时间:2023-10-16

我正在将一个FORTRAN蒙特卡罗程序转移到c++中,发现当完全转移时,c++程序的运行速度几乎是FORTRAN程序的两倍。我正试图起草c++程序的第二个版本,其中许多函数通过使用类结构来加快速度;然而,有些函数超过40或50行,我读到过将大型函数放在一行中会减慢程序的速度。当涉及到将函数排成一行时,什么是太大?我如何加速c++程序(没有多处理),使c++程序可以执行得和FORTRAN程序一样快,或者接近一样快?

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

在任何情况下,函数调用都不太可能支配您的处理时间。在编译器为您进行微优化之前,您可能需要对代码进行概要分析,以找出瓶颈实际在哪里。