在Visual中使用C++时,我偶然发现了一些有趣的东西。我调用了一个函数,通过嵌套的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设置设置错了什么的。
发布于 2015-03-21 21:34:56
它之所以运行得如此缓慢,调用该函数是因为我让它处于调试模式。在发布方式上是一样的。这给我带来了更多的问题,比如为什么会这样,但不管怎样,谢谢你的帮助。
https://stackoverflow.com/questions/29181246
复制相似问题