これはマイクロ最適化ですか、それともまったく最適化ですか?
void Renderer::SetCamera(FLOAT x, FLOAT y, FLOAT z) {
// Checking for zero before doing addition?
if (x != 0) camX += x;
if (y != 0) camY += y;
if (z != 0) camZ += z;
// Checking if any of the three variables are not zero, and performing the code below.
if (x != 0 | y != 0 | z != 0) {
D3DXMatrixTranslation(&w, camX, camY, camZ);
}
}
vector.size() を持つ条件で for.. ループを実行すると、アプリケーションは各ループでベクトル内の要素を再カウントすることになりますか?
std::vector<UINT> vect;
INT vectorSize = vect.size();
for (INT Index = 0; Index < vectorSize; Index++) {
// Do vector processing
}
// versus:
std::vector<UINT> vect;
for (INT Index = 0; Index < vect.size(); Index++) {
// Do vector processing
}
私は Visual Studio を使用しています。2 番目の質問については、コンパイラが最適化できるもののように思えますが、それについてはよくわかりません。