C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[42673] try..catch..를 사용할 때의 성능 차이.
박정진.바보 [reilover] 1942 읽음    2005-11-25 16:17
여태 까지 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하는 부분이 들어 갈거구요.

과연 이만한 성능차이가 프로젝트에 영향을 끼칠까요?

+ -

관련 글 리스트
42673 try..catch..를 사용할 때의 성능 차이. 박정진.바보 1942 2005/11/25
42677     Re:try..catch..를 사용할 때의 성능 차이. 마술감자.명국진 1474 2005/11/25
42684         Re:Re:try..catch..를 사용할 때의 성능 차이. 박정진.바보 1756 2005/11/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.