|
네. 그냥 쓰기로 했습니다. 의심가는 곳이나 가능성이 있는곳에는 콱콱..
저 결과가 제 꼬진 노트북 (펜3 1G)에서 나온 결과이니까요..
실제 서버는 좋은게 들어갈꺼니까 걱정없을거 같습니다.
여기저기 물어 봤는데 다들 그런이야기는 처음 들었다고 하시는군요.
뭐 실제적으로 처리시간에 차이가 있긴하지만 성능에 차이가 있다고한건
아마 까마득한 옛날 이야기였나 봅니다..^^;;;
마술감자.명국진 님이 쓰신 글 :
: 실제 상용 서버를 작성 할때 try/catch를 사용하지 않는곳은 거의 없습니다.
: try/catch를 써서 성능이 딸리면 더 좋은 머신을 사는것을 권장합니다.
: 그냥 쓰시면 됩니다~
:
: 박정진.바보 님이 쓰신 글 :
: : 여태 까지 try..catch...를 걸면 성능 저하를 가져 온다고 해서 사용을 자제 해왔었습니다.
: :
: : 네트웍 프로그램이라서 반응속도가 좀 느리면 안좋기 때문에 더욱 사용이 꺼려 지더군요.
: : 우선 내부적으로 테스트를 하고서 문제가 없어서 실제 서버에 올려서 서비스를 하니까..
: : 예외의 상황들이 발생하는거 같더군요.
: :
: : 그래서 오늘 한번 얼마나 성능의 저하가 있을까...하고 초무식간단하게 시간 테스트를 해봤습니다.
: : 우선 try...catch...를 배제한 코드와..
: : float a;
: : a = 129832789324;
: : long ttime;
: : ttime = GetTickCount();
: : for(int i=0;i<1000000;i++)
: : {
: : a = a + 1000;
: : a = a / 3324.12;
: : a = a * 23.43;
: : a = a / 3324.12;
: : a = a * 23.43;
: :
: : a = a + 1000;
: : a = a / 3324.12;
: : a = a * 23.43;
: : a = a / 3324.12;
: : a = a * 23.43;
: : }
: : ttime = GetTickCount() - ttime;
: : Memo1->Lines->Add(ttime);
: : for문이 한번 돌때마다 try..catch..를 사용한 경우입니다.
: : float a;
: : a = 129832789324;
: : long ttime;
: : ttime = GetTickCount();
: : for(int i=0;i<1000000;i++)
: : {
: : try
: : {
: : a = a + 1000;
: : a = a / 3324.12;
: : a = a * 23.43;
: : a = a / 3324.12;
: : a = a * 23.43;
: :
: : a = a + 1000;
: : a = a / 3324.12;
: : a = a * 23.43;
: : a = a / 3324.12;
: : a = a * 23.43;
: : }catch(...)
: : {
: :
: : }
: : }
: : ttime = GetTickCount() - ttime;
: : Memo1->Lines->Add(ttime);
: :
: : 테스트 결과 try..catch...를 사용하지 안았을경우 평균 100ms
: : 사용했을 경우에는 140ms나오더군요.
: : 뭐 나누기 연산이 가장 부하가 많이 걸릴거 같아서 이따위로.(ㅠㅠ)
: : 테스트를 해봤습니다. 백만번의 for문에서 40ms 차이라면 실제 성능에서는
: : 별 차이가 없지 않을가요?
: : 실제로 프로젝트에서는 아마 천번도 돌지 않을거 같습니다. for문 안에는주로
: : 데이터를 send하는 부분이 들어 갈거구요.
: :
: : 과연 이만한 성능차이가 프로젝트에 영향을 끼칠까요?
|