augmenting what goten said, compiler shouldn't have much to do with the framerate drop. Instead of uncommenting parts of the code I personally leave everything in and count the time it takes to perform each cycle. That's called profiling your code. Say you want to find out what is causing yoru problems:
Code:
int main()
{
GatherInputs(); //1ms
PerformAI(); //2ms
unsigned int time = timeGetTime();
DrawScene(); //uh oh, 25ms, taking a long time
unsigned int difference = timeGetTime() - time; //gives amount of
time that passed to draw the scene
}
You do that for every major component of your game, find out what part is taking the longest, then examine it more closely.
Say you want to know how long it takes to render the real polygons of the *world*:
Code:
void DrawScene()
{
DrawStencilShadows(); //1ms
DrawStencilReflections(); //1ms
DrawMonsterModels(); //2ms
DrawWorld() //25ms
}
Using that same idea you can break things down and find out exactly what went wrong. Note it only takes 16 and 2/3ms to render a single scene if you are going at 60frames per second
Just wondering, what are you using to build your terrain (what program) and what type of partitioning does it perform? I hope you aren't doing an unpartitioned terrain. If you are doing unpartitioned terrain there is little hope your fps will go at or above 60. Are you doing frustum culling, and if so how? (on a per polygon basis, on a per bounding box radius (for each leaf) ), does it have potential visibility sets?