Visual Studioでは、特定の方法で特定のコードを最適化するかどうかを知る最も簡単な方法は?Visual StudioでC++コンパイラが特定の方法で最適化するかどうかを判断する
たとえば、次の行は最適化されている可能性が非常に高いです。
int main(){
int a=3; //####
std::cout<<"1234"<<std::endl;
}
これは、ブレークポイントを設定することによって適度に簡単にチェックできます。グレーアウトされます。
コードが複雑な場合はどうなりますか?
以下は単なる例です。
コンパイルせずに知ることができれば理想的でしょう。
例1
int f1(){
return 3;
}
int main(){
int a=f1(); //#### likely to be in-line ?
std::cout<<a<<std::endl;
}
どのように私は(そのF程度を確認することができます)で、ラインになりますか?
例2
void f2(bool a){
if(a) std::cout<<"T"<<std::endl;
else std::cout<<"F"<<std::endl;
}
int main(){
f2(true);
f2(false);
}
どのように私は(F2かどうかを知ることができますが)このような2つの機能に分割することにより最適化されます: -
void f2_true(){ std::cout<<"T"<<std::endl; }
void f2_false(){ std::cout<<"F"<<std::endl; }
int main(){
f2_true();
f2_false();
}
[this](http://stackoverflow.com/questions/1020498/how-to-view-the-assembly-behind-the-code-using-visual-c)のようなアセンブリを見てください。 ? – TartanLlama
偉大な、それは私が探している答えの一種です。感謝! – javaLover
_ "Visual Studioで特定の方法で特定のコードを最適化するかどうかを知る最も簡単な方法は何ですか?" _最も簡単な方法は_ではありません! –