임베디드 C 프로그래밍 최적화란
CPU, 메모리 등 가용 자원이 제한적인 임베디드 환경에선 코드 최적화가 필수적이다. 코드 최적화는 속도, 메모리, 가독성 등의 요소를 최대화 하는 것을 의미한다. 각 최적화 요소는 trade-off 관계이기 때문에, 일반적으로 모든 요소의 향상을 추구할 수는 없다. 프로젝트 목표나 임베디드 환경에 따라 다른 요소의 성능은 포기하면서, 원하는 성능을 달성해야 한다. (하지만 문제에 따라 특정 알고리즘을 사용해 속도와 메모리의 성능을 모두 끌어올릴 수도 있다.)
임베디드 C 프로그래밍에서 최적화 여부를 확인하는 기초적인 방법인 디스어셈블리 코드를 확인하는 것이다. 디스어셈블리 코드란 우리가 작성한 코수준 코드를 기계어로 변경하기 이전에, 컴파일러가 어셈블리 코드로 만든 것이다. 일반적으로 어셈블리 코드 수가 많을 수록, 연산이 많은것이므로 코드의 속도가 느리다고 판단할 수 있다. Visual Studio와 같은 IDE 에서는 디스어셈블리 코드를 확인할 수 있으므로 아래 확인 방법을 참고하자.
임베디드 C 프로그래밍 최적화 방법은, 김유진 저의 임베디드 프로그래밍 C 코드 최적화 (한빛미디어 출판) 서적을 참고했다. 2000년도 후반에 나온 굉장히 오래된 책이지만, 훌륭한 내용이 잘 정리되어 있는 책이다. 이미 절판되어 새 책을 구할 순 없는데 중고 서적들은 가격이 2~3배에 형성되어 있다.
아래 포스팅 글들은 위 서적을 참고해, 속도 최적화 부분만 정리한 것이다. (내가 필요한 부분이 속도 최적화라 ㅎㅎ)
'개념공부 > 임베디드 C 프로그래밍 최적화' 카테고리의 다른 글
임베디드 C 프로그래밍 속도 최적화 - 기타 방법들 (0) | 2024.07.16 |
---|---|
임베디드 C 프로그래밍 속도 최적화 - 반복문 최적화 2 (0) | 2024.07.16 |
임베디드 C 프로그래밍 속도 최적화 - 반복문 최적화 1 (0) | 2024.07.15 |
임베디드 C 프로그래밍 속도 최적화 - 분기문 최적화 (0) | 2024.07.14 |
임베디드 C 프로그래밍 속도 최적화 - 변수 사용 최적화 (0) | 2024.07.11 |