임베디드 용어 사전
관측·테스트

프로파일링

어디에서 시간을 쓰는지 측정하는 일. 임베디드에서는 PC 샘플링이나 GPIO 토글로 관측한다.

추측으로 최적화하지 않기 위한 첫 단계다.

방법 셋

계측(instrumentation)   함수 앞뒤에 사이클 카운터를 넣는다
                       정확하지만 코드를 건드리고 오버헤드가 있다

통계적 샘플링           타이머 인터럽트에서 스택의 PC 를 기록한다
                       "어느 함수에서 자주 잡히는가" 로 분포를 얻는다

외부 관측              GPIO 토글을 로직 분석기로 본다
                       오버헤드가 거의 없고 타이밍 관계가 눈에 보인다

임베디드 특유의 관점

PC 소프트웨어는 총 실행 시간을 보지만, 임베디드는 최악 지연과 주기 지킴을 본다.

평균 200µs, 최대 3ms   → 평균은 문제없지만 1ms 주기를 못 지킨다

그래서 측정할 때 최댓값과 분포를 함께 남긴다.

순서

1. 무엇이 느린지 잰다        (여기)
2. 왜 느린지 본다            알고리즘인가, 대기인가, 인터럽트인가
3. 고치고 다시 잰다          숫자로 확인되지 않으면 고친 게 아니다

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 트레이스와 프로파일링 — 멈추지 않고 관찰하기