캐쉬만 사용하니까 그것만 언급함. (hit/miss 만 볼것이므로)

valgrind --tool=cachegrind [실행파일]

끝!
gcc는 실제사용 할때와 동일하게 컴파일. (-g 옵션을 하면 opannotate 를 사용할 수 있다.)

   – $ opcontrol --reset
   – $ opcontrol --event=[추가할이벤트]   (디폴트는 CPU cycle)
   – $ opcontrol --start (--no-vmlinux)
   – 여기에서 실제 벤치마킹 수행
   – $ opcontrol --dump
   – $ opcontrol -h
   – $ opreport -l  [실행파일]
   – $ opannotate --source [실행파일]   ===> c 소스파일에 각 라인별 counter가 나온다.


각 CPU 별로 추가할 event는 http://oprofile.sourceforge.net/docs/ 참조.
gcov는 gcc와 함께 사용되는 code coverage 툴이다.
사용방법을 기재해둔다.

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


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


기존의 C++에서는 복사생성자 및 대입연산자에서는 무조건 deep copy를 해야했다.
예륻 들어 vector<> 같은 녀석이 있었고 그게 사이즈가 크다면 모조리 다 copy부터 했다는뜻.
그러나... RValue Reference의 경우는 Shallow copy만 해도 된다!
(간단히 말해 포인터만 옮겨간다...라고 생각하믄 될듯)

궁금한건...복사생성자,대입연산자는 C++이 기본으로 만들어주는게 있는데,
RValue Reference를 사용하는 move 연산자들은... 자동으루 해주나? ㅡ.ㅡ;;
그건 잘 모르겠네 흠.

뭐 VS 2010 부터 지원된다고 하니 (gcc는 4.0 이상의...뭐 마이너 버젼이 있나본데 자세히는 잘...)
꽤 많은 유저들이 은연중에 사용할듯.
STL 만 해도 그냥 기존처럼 써도 많은 부분이 성능향상이 있으니.
Freescale MSC8156 이라는 DSP를 사용중이다.
memory access time이 매우 중요한 이슈라서...Reference Manual을 읽고 좀 정리해본다~

구조는 DCache, M2/L2 memory, M3, DDR 으로 구성되어있다.
(아래 그림 참고)

M3 부터는 DSP Subsystem 을 벗어나, 다른 코어 및 periperal 들과 함께 사용하는 bus에 접근하게 된다. 그러므로, 실제 access time이 매우 오래 걸릴 수 있다.
C언어에서 this라니 묘하긴하지만.

struct A
{
   int a, b;
};
가 되어있을때, A 구조체의 b 포인터에서 A 구조체의 포인터를 거슬러 올라가서 구하는? 뭐 그런것.

#define container_of(ptr, type, member) ({   \
const typeof( ((type *)0->member ) * __mptr = (ptr);   \
(type *)( (char *) __mptr - offsetof(type, member) ); } )

길기도 하지 -_-;;;
A structure로 예를 들어보자면, 코드는 다음과 같이 활용될수있다.

void foo (int * b)
{
struct A * p;
p = container_of(b, struct A, b);
}

좀 복잡하긴함...^^;;
사람이 읽기 편하게 마킹하는게....몇가지 있는데

0xDEADBEEF,
0xBADDCAFE,

등등?

25.306 chapter 5 Possible UE radio access capability parameter settings

에서 찾아볼 수 있다.

 

A UE that supports categories greater or equal to category 13, also supports E-DPDCH.
A UE that supports categories greater or equal to category 13, also supports MAC-ehs.
UEs of categories 13, 15, or 17 also support category 9 when MAC-ehs is configured.
UEs of categories 14, 16, or 18 also support category 10 when MAC-ehs is configured.

 

카테고리 13에서 64QAM 지원시에는 F,Q 테이블을 참고하며, 16QAM 시에는 C,D 테이블을 참고한다.

(여기서 테이블은 CQI table을 의미)

C,D 테이블은 각각 카테고리 9,10 에서 사용되는 테이블이다.


즉, MAC-ehs 라고 bit align 될수있다는 얘기.

지금까지 쭉 써오면서...주로 혼자만 쓰다보니;;; merge기능은 잘 안썼었다.
(branch를 쓰긴했지만, 그냥 테스트용도로 잠시 쓰고 버렸을뿐;;)
이번에 쓰려고 하니 잘 모르는부분이 많아서 검색 후 좋은 내용을 발견.

그래서 링크걸어둔다.

http://bchavez.bitarmory.com/archive/2008/06/03/quothow-toquot-svn-merge-with-tortoisesvn.aspx

+ Recent posts