|
카테고리
이전블로그
|
저처럼 처음 보는 분도 있겠지만 원래 C 사용자들에게는 유명한 문제이기도 하더군요. 오늘 여기저기를 돌아다니다가 발견했습니다. C 언어의 약점이라고 알려져 있는 switch 문안에서의 break 문제를 이렇게도 이용하다니 신기하네요. 이게 왜 빠른지 이해하는 데 약간의 시간이 걸렸습니다. ^^
Duff's Device와 관련된 메일 링크 ==== Evans & Sutherland Picture System의 programmable IO data register로 short 데이터 배열을 복사하는 다음 루틴을 보죠.
(물론 count가 0이면 이 루틴은 실패하지요) VAX C 컴파일러는 이 루프를 두개의 인스트럭션으로 컴파일합니다. (movw와 sobleq라고 생각됩니다만) 해보면 알 수 있듯이, 이 루프는 실시간 에니메이션 재생 프로그램의 가장 큰 병목이 됩니다. 50% 정도 느리게 되지요. 이런 경우 속도를 높이는 전통적인 방법은 sobleq를 줄여 루프를 조금 돌게 만드는 것이지요. 그렇게 하면, 남은 바이트들을 처리하는 문제가 남게 됩니다. 저는 C를 쓸 때는 이것을 원래 루프문 안에 인덱스를 달아놓은 switch를 사용해 처리합니다. 물론 어셈블 언어로 코드를 짤 수 있다면, 바로 남은 바이트들을 처리하도록 루프 중간으로 점프하도록 했겠지요. 어제 이걸 고민하다가 다음과 같은 코드를 만들었습니다.
역겹다고요? 하지만 컴파일도 되고 잘 돌아가기만 하는 걸요. 나는 이걸 발견한 것이 자랑스럽기도하고 동시에 증오스럽기도 합니다. 아무도 이걸 먼저 생각해 내지 않았다면 내 이름을 붙이려고 합니다. (이하 생략) ====
|
이글루링크
erehwon.LAB
미친병아리가 삐약삐약 Oh Aussie? O Rly? His Story... ㅂㄱㅅㄴㄷ 하얀아이 카즈군의 Holyland Emacsen or visualian Xeraph@NCHOVY 숏다리영감 - 블러그 상실의시대 무책의 잡설 애자일 이야기 최근 등록된 덧글
●달통위젯을 사용해 보..
by 보름달 at 10/11 "세상 속 꿈 찾기...*"란.. by Stefan at 07/06 尹氏曰, "君子求在我者.. by 투덜이 at 04/03 愚按, 此章問答, 其淺.. by 투덜이 at 03/22 往者, 其所已言者. 來者.. by 투덜이 at 03/22 詩衛風淇澳之篇, 言治.. by 투덜이 at 03/22 諂, 卑屈也. 驕, 矜肆也.. by 투덜이 at 03/22 尹氏曰, "君子之學, .. by 투덜이 at 03/21 不求安飽者, 志有在而.. by 투덜이 at 03/21 信, 約信也. 義者, 事.. by 투덜이 at 03/20 최근 등록된 트랙백
코드 소유권(Code Own..
by Younghoe.Info [펌] 이름을 어떻게 .. by Smalltalk로 하는 객체지.. 피플웨어 by 투덜이 블로그 프로그래머. 어떻게 살.. by 써니의 一生牛步行 Windows Vista Beta 1.. by 아크몬드의 비스타블로그 팟캐스팅(Podcastin.. by Podcasting! 팟캐스.. 메모장
|