【初心者歓迎】C/C++室 Ver.34【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0322デフォルトの名無しさん
2007/01/29(月) 09:30:07自分で確かめもせずに入に聞くのは良くないと思い以下のコードで実験してみたら
timeBeginPeriod(1);
DWORD t=timeGetTime(),r;
for(int i=0;i<100000000;++i){
try{
if(i<0)throw exception();
}catch(exception e){exit(-1);}
}
r=timeGetTime()-t;
cout<<r<<endl;
t=timeGetTime();
try{
for(int i=0;i<100000000;++i){
if(i<0)throw exception();
}
}catch(exception e){exit(-1);}
r=timeGetTime()-t;
cout<<r<<endl;
timeEndPeriod(1);
結果:
450
270
と出力された。差分180。
でもノイズとしてifの直前にi*=3;i/=3;を入れ、ループ回数を100000000から10000000にしたら
結果:
664
607
となった。差分57。
明らかに差が縮まっていますがこの違いはなんですか?
VC8 最適化なし celeron2.4GHz
■ このスレッドは過去ログ倉庫に格納されています