Introduction
코드 리뷰를 하다가 if문이 많을 수록 코드 분석을 더 힘들게 한다는 사실을 알게 되었다. 그러던 중 if문을 고의로 없애버리는 코드를 작성하기 시작했는데, 문득, 성능도 더 좋을까? 라고 생각하는 찰나에 테스트 코드를 만들고 테스트 해보았다.
content
하는 일은 같으나, 한쪽은 if문이 있고, 한쪽은 if문이 없다. 하는 일은 현재 나이를 저장한 변수가 초기화 나이까지 되었을 때, 0으로 리셋 해 주는 일이다.
실제로 case1 이 코드가 더 깔끔하나, 실제 속도는 case2가 case1보다 8배 정도 빠르다. 어셈블리 코드로 연산은 if문보다 %= 연산이 2개 더 많지만, 연산 자체가 시간을 더 많이 먹다 보니 느리다.
digression
.. 너무 고집스럽게 if문을 없애기 보다는 비용을 생각하며, 코드를 구성 시키는게 더 좋겠다.
'연구실 > 파편화된 기록들' 카테고리의 다른 글
소멸자로 객체를 초기화 하는 작업은 무척 위험하다. (2) | 2010.07.31 |
---|---|
C++ 비가상 함수를 상속 클래스가 재정의 했을 경우 (4) | 2010.07.13 |
for while 사용 차이점 (0) | 2010.03.23 |
윈도우 7, 창 최대화 최소화, 화면 분할 좌측 붙이기, 화면 분할 우측 붙이기 (360) | 2010.01.15 |
"크다" 와 "작다"는 "같다" 보다 더 어렵다. (718) | 2010.01.13 |
for문 보다 STL이 더 직관적이고, 수정이 편하다. (360) | 2009.12.23 |
if 지옥 또는 if Hell 이라고 나는 이름을 지었다. (360) | 2009.12.22 |
어떤 if 문이 인간이 이해하기 더 좋을까? (554) | 2009.12.02 |
멀티 쓰레드 기반에서 C++로 어떻게 편하게 락을 걸까? (360) | 2009.11.28 |
C++ Object Serialization : C++ 오브젝트 직렬화 (1481) | 2009.10.15 |
최근댓글