0
我使用OpenGL,Qt,C++编写了3D模型显示程序,但是我发现了一些奇怪的东西,即发布模式版本中的FPS(每秒帧数)低于调试模式版本。现在我张贴他们的FPS:FPS:发布模式版本低于调试
左边是调试模式版本,右边是发行模式版本:
我用它来计算FPS功能是
void displayFPS()
{
static float framesPerSecond = 0.0f; // This will store our fps
static float lastTime = 0.0f; // This will hold the time from the last frame
float currentTime = GetTickCount() * 0.001f;
++framesPerSecond;
if(currentTime - lastTime > 1.0f)
{
framesPerSecond/=currentTime - lastTime;
char strFrameRate[256];
lastTime = currentTime;
sprintf_s(strFrameRate,256, "FPS : %f", framesPerSecond);
cout << strFrameRate << endl;
framesPerSecond = 0;
}
}
我不知道这怎么会发生?不应该释放模式比调试模式更快吗?有人可以告诉我为什么吗?
我觉得很难从给出的信息中分辨出来。 displayFPS()函数应该可以正常工作。 btw ..为什么你使用sprintf_s写入fps到控制台?而不是'cout <<“FPS:”<< framesPerSecond << endl;' – Dirk 2012-07-18 07:58:05
有时,vsync会导致有趣的效果。你有没有尝试禁用vsync?对于Nvidia GPU,您可以在Nvidia控制面板 - >管理3D设置 - >垂直同步:强制关闭。 – kroneml 2012-07-18 12:51:13