多次调用函数是否会降低程序速度

Does calling a function multiple times decrease the programm speed?

本文关键字:程序 速度 是否 调用 函数      更新时间:2023-10-16

我只是有一个简短的问题。

1.

sf::Vector2f position = player.getPosition();
std::cout << position.x << " " << position.y << 'n';

阿拉伯数字。

std::cout << player.getPosition().x << " " << player.getPosition().y << 'n';

第一种方法理论上比第二种方法更快吗? 因为第二种方式调用同一个函数 2 次。

通常多次调用一个函数确实会使程序变慢。

对于每个函数调用,都需要保存上下文(程序计数器、局部变量等(,并且需要创建一个新的堆栈帧,其中保存了在该函数中创建的局部变量。

因此,每次调用函数时,所有这些都会发生。这还没有考虑到函数需要多少时间来处理它必须处理的任何内容。

也许吧。这要看情况。

多次调用函数可能比调用一次函数慢。

但是,如果优化器可以证明该函数没有副作用,那么它将能够将多个函数调用减少到一个。如果优化器为两种备选方案生成相同的输出,则程序速度不会有任何降低。