다음 프로그램이 있으며 VS 2010 디버그 모드에서 실행 중입니다. 놀랍게도 for for 빈 루프는 for 문보다 더 많은 시간이 걸린다. 빈 for 루프의 시간은 2371ms이고 루프의 추가 시간은 2043ms입니다. 그리고 나는 그것을 여러 번 돌렸고 루프를위한 빈 시간은 빠릅니다. 무슨 일 이니? 최적화가 켜져와러닝 타임 (하나의 명령문으로 루프 대 루프에 대해 비어 있음)
#include <Windows.h>
#include <iostream>
using namespace std;
int main(){
DWORD start = GetTickCount();
for(int i = 0; i < 1000000000; i++){
}
DWORD finish = GetTickCount();
cout<<finish - start<<" ms."<<endl;
start = GetTickCount();
for(int i = 0; i < 1000000000; i++){
int x = i + 1;
}
finish = GetTickCount();
cout<<finish - start<<" ms."<<endl;
return 0;
}
디버그 모드의 타이밍은 꽤 신뢰할 수 없습니다. 성능의 크기에 대한 아이디어를 얻을 수 있지만 그보다 훨씬 나아지기는 꽤 어렵습니다. –