개발중에 zlib 라이브러리를 쓰다가 갑자기 예전일이 생각나서 끄적거려 보네요..ㅋ
이제 막 c언어를 배우기 시작하는 후배놈에게 아래의 두 코드를 보여준적이 있었는데.
두개의 함수중 어느녀석이 수행속도가 빠를까? 였습니다.;;
아직 초보인 후배녀석은 당연히 첫번째 녀석이 빠른거 아니냐고...당연히 코드가 짧고 많이 수행할 명령어가
없어서 빠르다!! 이렇게 주장을 펼치더라고요..ㅋㅋ
(참고로 아래의 두 함수는 데이터의 crc 값을 구하는 함수, 오유 굇수 개발자들은 이미 알고 계시겠죠?ㅜ 뉴비는 늅늅하고 웁니다.ㅜ)
( http://en.wikipedia.org/wiki/Adler-32 에서 위 소스 그대로 구할수 있습니다.)
임의로 채워진 데이터 크기 2048 , 총 20억번 반복 계산을 수행후
전 웃으면서 아래와 같이 결과를 보여주었습니다. (결과는 milisecond 가 아닌 microsecond 입니다 1milisec = 1000 microsec)
"후배녀석아 보거라... 코드가 짧고 똑같은 일을 수행한다고 해서
무조건 빠른건 아니란다.. " 이렇게 알려주었죠... 그때 후배의 벙찐 모습은..;; 정말..ㅋ
가끔씩 코드를 작성하면서 , 코드의 길이와 가독성, 수행속도에 대해 다시금 성찰하게 되는 에피소드 였네요..;;