블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
Programming 2011. 2. 17. 13:50

gcov 사용방법

gcov는 gcc와 함께 사용되는 code coverage 툴이다.
사용방법을 기재해둔다.

1. 연관된 gcc 옵션 : compile : -g --coverage  / link : -fprofile-arcs
2. 1번의 옵션으로 컴파일 후 실행.
3. gcov -b [소스파일]
4. 소스파일.gov 를 본다.


,
Programming 2011. 2. 16. 15:39

Code coverage with Visual C++ (track-back)

VC++에서 코드커버리지 하는거... 발견한것 링크~


,
잡동사니 2010. 12. 3. 09:18

SW개발부서의 부서장이 SW개발자가 아니라면...

개고생한다. -_-;;;;

다음 제품에 대한 큰그림을 그리고 있는듯한데...
H/W accelator를 넣고 싶나보다. (별로 필요없을꺼같은데;;; 흠;;;)
뭐 그래서...현재 구조의 sw에서 어떤부분이 cycle이 많이 먹는가?를 궁금해하는듯.

그런데... 임베디드 시스템이다보니, PC와는 다르게 메모리가 정해져있다.
PC는 메모리 위치가 L2인지 DDR인지 구분하지않지만,
이쪽은 M2, M3, DDR 이렇게 3단계로 구분되어있다. (당연히 크기는 M2<M3<DDR)

그러다보니...cycle 측정해놓은 결과가 메모리에 너무 dependency를 가진다.
별거없는 함수인 주제에 M3나 DDR을 썼을경우 엄청난 cycle을 먹고있는것.
그래서 위에서 내려온 일이 뭐냐면....두둥!!!


'C코드를 보고 사이클 측정하기'


이건 뭐...;;;;; 아우 Tq qt
상황따라 loop도는거, banch 되는거...다 다른데 뭘 어케 측정하라는거냐;;;
특히나 optimizer 돌아가면 안드로메다로 차이날텐데.
다른 부서에서 그런용도로 사이클 측정한게 있던데.... 문서를 보니 이건 병림픽 가관이다.
CA(Computer Architecture)에서 항상 cycle을 많이 먹는 load/store가 1 cycle...로 가정.
하긴 뭐, ALU에 들어가는것도 C코드를 보고 눈으로 측정한거니...ㅋㅋㅋㅋ

함수별로 일일히 코드보고 하기는 겁나 귀찮고...해서 asm으로 분석하기로 했다 ㅋㅋㅋ
optimize 따위 꺼버리고, 대애~~충 asm 종류별로 분류해서...
아 정말 무의미한 짓을 왜하는지 모르겠네 -_-
O(n) 과 O(n log n) 의 각각 다른 알고리즘이 있을때, 그냥 생각하면 O(n log n)이 나빠보이지만....
실제 사이클은 또 다를수가 있는법인데;;;
(구현레벨의 차이라던가, 루프내부의 하는일이 많이 차이난다던가)
,
TOTAL TODAY