no swim no life
CODE Complete, 31: 배치와 방식 본문
한 줄에 지나치게 많은 연산을 수행
strcpy( char * t, char * s )
{
while ( *++t = *++s );
}
strcpy( char * t, char * s )
{
do {
++t;
++s;
*t = *s;
}
while ( *t != '\0' );
}
t 와 s 는 *s 가 *t 에 복사되기 전에 증가, 첫 번째 문자가 빠진다.
5,000,000 문자열을 복사할 때 첫 번째 버전은 4.81초, 두 번째 버전은 4.35초가 걸렸다.
이 경우에서는 "머리를 굴린" 버전이 11% 정도 속도가 느렸으며, 결국 쓸데없이 머리를 굴린 꼴이 되었다.
'work > fundamental' 카테고리의 다른 글
CODE complete, 32: 문서화에 들일 노력을 코드에 쏟아 부어라. (0) | 2008.11.28 |
---|---|
(작성) 변수 (1) | 2008.09.25 |
Byte alignment (0) | 2008.09.04 |
Comments