본문 바로가기

Programming/C language

C 최적화에 대한 의견


CPU      MEM     HDD
다시 CPU는

Instruction Mem                  C
Data Memory                     ALU

전역변수: 파일 내에서 컴퓨알 후 메모리에 변수가 할당 된다. 초기화를 하지 않으면 호기화 명령어가 포함 되어져서 컴파일 되며 한 파일 내에서 어떤 함수든 접근 가능한 변수있다.

지역변수: 실행파일 내에서는 따로 영역이 잡혀 있지 않고 수행하는 과정에 CPU 레지스터에 바로 생성되서 속도가 전역 변수 보다 빠르다.

Static: 그 변수를 다른 파일은 참고 할 수 없게 한다. 많은 파일이 겹치면 변수의 혼란이 오기 때문이다.
Extern: 다른 파일에서 변수를 그대로 참고 할 수 있게 한다. 많은 파일을 이용해서 변수를 이용할 때 유용하다.

최적화

1. 배열보다는 상수형인 enum을 쓸 것: 데이터 메모리에 상주하는 변수로 잡지 않고 프로그래밍 메모리에 잡혀서 이득이 있다.

2. 메크로 상수 이용 #define a 10; 같은 방식으로 하면 a가 10으로 바로 참조 되어 다시 메모리로 접근을 시도 하지 않는다.

3. 캐쉬 적중률을 높일 것

4. 될 수 있으면 메모리를 적게 사용할 것

5. 외부 메모리를 적게 사용할 것

6. 전력 사용량 많은 명령어(from datasheet) 사용을 줄 일 것.

7. 파이프 라이닝 기법 구조로 프로그램을 짤 것.