본문 바로가기

Miscellaneous

(44)
퍼포먼스 최적화의 기본 (4편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] 요점정리 이전에 예제 함수의 정확한 성능차이부터 공개할까 한다. before after 바이너리 사이즈 136 84 x루프 1회 실행 사이클 16 4 안쪽 (x루프) 에서만 정확히 4배의 속도가 나온다. 상기 사이클은 goto가 소요하는 3사이클을 제외한 것이다. 그러므로 실질적으로는 19: 7로, 2.7배 정도의 속오디긴 하지만, 좀 더 복잡한 함수를 구현하는 경우 기본 실행사이클 자체도 큰 폭으로 늘어나게 되므로 3사이클을 비중은 무의미해 진다 할 수 있다. 이렇듯이 기본만 준수해도 3~4배의 정도의 속도를 달성할 수 있다. 그럼 준수를 요하는 기본을 정리하도록 하겠다. 1. 최대한 지역변수를 사용한다. 전역변수나 인자로 받은 ..
퍼포먼스 최적화의 기본 (3편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] void FlipImage(img_type * pDst, img_type * pSrc) { unsigned int x, y; unsigned int srcwidth, srcheight; unsigned short * pDstBuf, * pSrcBuf; srcwidth = pSrc->width; srcheight = pSrc->height; pDstBuf = pDst->imgBuf; pSrcBuf = pSrc->imgBuf; pDst->width = srcheight; pDst->height = srcwidth; for (y = 0; y < srcheight; ++y) { for (x = 0; x < srcwidth; ++x) { p..
퍼포먼스 최적화의 기본 (2편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] void FlipImage(img_type * pDst, img_type * pSrc) { unsigned int x, y; pDst->width = pSrc->height; pDst->height = pSrc->width; for (y = 0; y height; ++y) { for (x = 0; x width; ++x) { pDst->imgBuf[x*pSrc->height + y] = pSrc->imgBuf[x + y*pSrc->width]; } } } ========================================================================== 위 함수가 받는 ..
퍼포먼스 최적화의 기본 (1편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] 아이폰/아이팟 터치는 ARM코어를 기반으로 한 CPU를 탑재하고 있다. 개발자 입장에서 볼 때 ARM의 가장 큰 특징은 RISC 방식이라는 것이다. 컴퓨터는 CPU가 CISC 방식일 때 보급되기 시작하였고, 이에 따라 현재까지도 대부분의 컴퓨터 서적들이 RISC CPU의 특성을 전혀 고려 하지 않은 예제들만 제시한다. 간단한 예제를 통하여 이러한 "일반적인" 프로그래밍 방식의 문제점들을 짚어보도록 하겠다. ===================================================== 다음과 같은 이미지 데이터 타입이 있다., typedef struct { unsigned short height; unsigned s..
ARM 아키텍처와 RISC ARM(Advanced RISC Machine) 아키텍쳐는 임베디드 기기에 많이 사용되는 32-BIT RISC 프로세서 이다. 저전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보인다. RISC(Reduced instruction set computer)는 CPU의 명령어의 개수를 줄여 하드웨어 구조를 좀 더 간단하게 만드는 방식으로, 마이크로프로세서를 설계하는 방법 가운데 하나이며, SPARC, MIPS 등의 아키텍처에서 사용된다. = IBM 6000기종과 Mac에서 쓰이고 있음 = CISC(Complex instruction set computer) 복잡한 명령어들의 집합 컴퓨터(많은 명령어 처리 가능), 즉 명령어의 갯수가 많다는 단점이 있는 반면 프로그램의 길이가 짧다. ..
KGC2010에서 앵그리버드 개발자의 강연 내용 [개발적인면] 1. 친숙하고 아기자기한 표현으로 눈을 즐겁게 했다. 2. 한눈에 봐도 쉽고 이해하기 쉬워서 본능적으로 게임을 할수 있게 했다. 3. 쉬운면도 있지만 별3개를 따기는 어렵게 만들어서 하드코어 유저도 만족 시킨다. 4. 쉽고 반복적인 리듬으로 만들었다 왜?? 통역자가 놓친건지 내가 놓친건지 이유는 못 들었네요. 5. 한판이 쉬우니 다음판까지만 이라는 생각이 들게 레벨링해서 중독성이 있다. 6. 처음에는 60판정도 있었지만 점점 업데이트를 해서 지금은 200판정도까지 늘었다. 7. 루아를 사용해서 밸런스 작업을 하였기 때문에 프로그래머가 코딩에 집중할 수 있게되서 시간단축이 많이 됐다. [운영적인면] 1. 0.99달라라는 저비용에 비해 플레이타임이 길고 만족감이 높다. 가격을 올렸더니 다운수가..
Basic Computer Information 리눅스 파일 시스템 http://hgh73.blog.me/90020802601 리눅스 커널 컴파일 http://whitelka.blog.me/60059633020 http://blog.naver.com/youngrimi?Redirect=Log&logNo=50118697443 \ http://blog.naver.com/kdr0923?Redirect=Log&logNo=50108505212 C malloc http://blog.naver.com/gywns41?Redirect=Log&logNo=100145714676
Google TV & LG Smart Google TV http://shopping.naver.com/detail/detail.nhn?where=all&query=Sony%20NSX-32&cat_id=30018056&nv_mid=5670807727&frm=nv_product http://avenuel.tistory.com/775 http://www.itpunya.com/sony-nsx-32gt1-google-tv-hdtv-specs.html http://esupport.sony.com/US/perl/model-home.pl?mdl=NSX40GT1&template_id=1&region_id=1&tab=manuals#/manualsTab