gpt4 book ai didi

c++ - 痛苦缓慢的函数调用

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:08 26 4
gpt4 key购买 nike

我在使用 C++ 的 Visual Studio 中工作时偶然发现了一些有趣的东西。我正在调用一个函数,通过嵌套的 for 循环将像素设置到屏幕,用于 X 和 Y 屏幕坐标。我发现如果我在 main() 函数中执行操作,我的程序将以每秒 250 帧的速度运行,但如果我将它移至外部函数并调用它,帧速率将降至每秒 30 帧。

我用一个测试程序做了一些调查,它复制了我的程序中发生的事情。下面是我所做的说明....

如果我运行下面的程序....

void main()
{
for (int i = 0; i < 1e9; i++) // Loop a billion times
{
1+1; // do something
}
}

运行时间为 1.6 秒。

但是,如果我运行以下代码,除了调用外部函数之外,它会做完全相同的事情....

void onePlusOne()
{
1+1;
}

void main()
{
for (int i = 0; i < 1e9; i++) // Loop a billion times
{
onePlusOne(); // call function instead
}
}

执行需要 18 秒。

现在,我实际上可以避免调用该函数,而只在我的 main() 中包含我需要的代码,但这会使它变得非常困惑和不可读。

请告诉我做错了什么,或者我的 Visual Studio 设置有误等等。

最佳答案

调用该函数运行如此缓慢的原因是因为我在 Debug模式下运行它。在 Release模式下,它是一样的。现在这对我提出了更多问题,例如为什么会发生这种情况,但无论如何,感谢您的帮助。

关于c++ - 痛苦缓慢的函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181246/

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