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:
You do that for every major component of your game, find out what part is taking the longest, then examine it more closely.
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
Say you want to know how long it takes to render the real polygons of the *world*:
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?