티스토리 뷰



임베디드 개발자라면 메모리는 곧 돈입니다.

그러므로 가능한 코드에서 메모리를 효율 적으로 사용하고 가능한 최적화된 코드를 작성해야 합니다.
(물론 가독성이 현저히 떨어진다면 고려해 보아야겠지만..)

여기 비용 선택에 따른 연산자 분류가 있습니다.

첫번째로 흔히 나머지를 구할때 사용하는 % 연산자.
그리고 몫을 구하는 / 연산자.

예를 들어 아래와 같은 코드가 있다고 보면
x %= 10

이는 역어셈 결과 mov, cdq, mov, idiv, mov 다섯 과정을 거칩니다.
반면 아래의 코드는 같은 결과를 얻지만, mov, and, mov 세가지 과정으로 결과를 산출합니다.
x &= 10




그럼 몫을 구하는 연산자를 살펴봅시다.
x /= 10

위와 같은 코드는 나머지를 구하는 연산 보다 더 많은 연산을 합니다.
역어셈 결과 mov, cdq, and, add, sar, mov 이렇게 여섯개의 과정을 거치며 결과를 얻는 반면
아래의 코드는 mov,sar,mov 세가지 과정으로 결과를 얻습니다.
x >>= 10


자, 이제 어떤 연산자를 사용할지는 개발자 여러분의 몫입니다.


'개발 > Linux' 카테고리의 다른 글

64bit kernel + 32bit iptables (Application)  (0) 2011.11.30
find command  (0) 2011.11.29
pages_to_mb  (0) 2011.11.02
for_each_possible_cpu  (0) 2011.11.01
dmesg Option  (0) 2011.10.31
댓글
댓글쓰기 폼