티스토리 뷰
임베디드 개발자라면 메모리는 곧 돈입니다.
그러므로 가능한 코드에서 메모리를 효율 적으로 사용하고 가능한 최적화된 코드를 작성해야 합니다.
(물론 가독성이 현저히 떨어진다면 고려해 보아야겠지만..)
여기 비용 선택에 따른 연산자 분류가 있습니다.
첫번째로 흔히 나머지를 구할때 사용하는 % 연산자.
그리고 몫을 구하는 / 연산자.
예를 들어 아래와 같은 코드가 있다고 보면
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 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday