-1

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

4

1 回答 1

1

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

在任何情况下,函数调用都不太可能支配您的处理时间。您可能想要分析您的代码以找出瓶颈的实际位置,然后再将过多的精力投入到编译器可能在任何情况下为您执行的微优化中。

于 2013-06-11T16:31:01.693 回答