1. loop 최적화
void *memcpy(void *dst, void *src, size_t n)
|
ARM 컴파일러의 경우, 위의 코드를 아래와 같이 해석합니다.
void *memcpy(void *dst, void *src, size_t n)
|
※ 위의 코드는 ARM asm 이고, AT&T 표기법입니다. ( @ 는 주석입니다.)
ARM 의 경우, argument가 4개 이하일때, arg 는 r0~r3 을 이용하여 passing 됩니다.(ATPCS 참조) r0=dst, r1=src, r2=n
여기서 중요한 부분은...
반복마다 동작해야 하는 실질적인 memcpy 동작(5, 6) 보다도, 범위체크 및 종료판단을 위한 오버해드가 (7,8,9)가 더 많은 실행싸이클을 요구한다는 것입니다. 또한, 이런 오버해드는 반복수가 커질 수록 더 커집니다.
'Programming > C, C++, MFC' 카테고리의 다른 글
[Function][MFC] CFileDialog 를 이용하여 다중 파일 목록 작성 (0) | 2014.01.23 |
---|---|
[Function][MFC] 폴더 경로 구하기 ( CString에 선택된 폴더의 절대경로를 저장하자 ) (0) | 2014.01.23 |
LPCSTR / LPCTSTR / const char* / CString 등등 문자열 형 (0) | 2013.11.11 |
UpdateData() 함수에 대한것들 (0) | 2013.11.11 |
std::string --> CString 변환함수 (0) | 2013.11.07 |