여기저기에 try catch 를 게임에쓰기엔 비용이 좀 많이드는 놈이라
아예 안쓰는것이 좋다는 글이 많은것 같네요.
그런데 어디에서 비용이 많이 드는지 시원히 설명해주는 글을 찾지 못했습니다;
질문1) try catch 문을 쓰면 함수에 try-catch 처리를 위한 명령어가 추가되는건가요? 그래서 비용이 많이 든다는 건가요?
질문2) 그렇다면 try 를 한군데서라도 쓰는순간 모든 모든함수에 명령어가 추가되서( throw() 로 제낀거빼고 )
모든 함수가 느려지나요?
이렇게 하는게 제대로 테스트 해보는건지 모르겠지만;;
그다지 차이가 나지 않더군요;;(차이가 없다기보단,,타이머가 부정확한건지 매번 편차가 조금 심해서;)
Code: Select all
#pragma comment (lib,"winmm.lib")
#include <iostream.h>
#include <windows.h>
//#define TRY
void print()
{
}
int main ()
{
DWORD start = timeGetTime();
#ifdef TRY
try
{
#endif
for( int i=0; i<10000000; i++)
print();
#ifdef TRY
}
catch (char *e)
{
}
#endif
DWORD end = timeGetTime();
cout << end-start <<endl;
return 0;
}