하드웨어는 반드시 소프트웨어 보다 빠르다.

프로그래밍/프로그래밍 메모장 2006/09/01 15:16
GPG포럼에서 답글을 달다가생각 나서 포스트 해봅니다.

일반적으로 모두 아시다시피,

하드웨어가 소프트웨어보다 빠릅니다. 똑같은 일을 하는 경우에 말입니다.
예를들어 똑같은 알고리즘을 쓰는 경우 소프트웨어로 구현한것보다
그 소프트웨어를 하드웨어로 바꾼것이 훨씬 빠른속도를 내는것이 당연한것입니다.

그러나 ! 제가 말하고 싶은것은 그것이 아닙니다.

하드웨어가 소프트웨어보다 항상 빠르다라고 생각하는 편견을 머리에
가지고 있으면 곤란하다는 것이죠.

때로는 소프트웨어가 하드웨어보다 빠를 수 있다고 생각해야됩니다.
예를들어  동영상 플레이어가 있다고 칩시다.

하나는 듀얼CPU 최신 사양에 PC에서 돌아가는 소프트웨어 동영상
플레이어와  또하나는 하드웨어로 만들어진 플레이어가 있다고 칩시다.
만약 이 하드웨어 플레이어의 CPU가 PC보다 아주 많이 떨어진다면
어떨까요.

당연한 이야기이지만 하드웨어가 소프트웨어보다 느립니다.




아주 당연한 것이지만 가끔은 이런것을 까먹고는 합니다.
결국 유연성에 관한것입니다.

상황에서 따라서 여러현상을 일으킬수 있는 세계가 프로그래밍의 세계라는
것을 기억하십시요.

요점 :: 비 상식적인 일이 일어났을때 유연성있게 대처하십시요.


PS. 가끔은 이런일도 일어납니다.
     if( x > 100)  call_a();
     else call_b();

     x가 100보다 크면 call_a가 실행되고 그렇지 않으면 call_b가 실행되는 문장이지만
     문장의 문법과는 틀리게  x가 100보다 큰 경우에 call_b가 수행되는 문제같은
     경우입니다.

이런경우를 저는 지금까지 세번정도 보았습니다. 94년 bcc에서  97년 sun os 환경
gcc에서 2002년 Win2000 vc6.0 에서..

해결은?   관련된 구조를 고치고 새롭게 코드를 작성했습니다.
원인은?   컴파일러 버그입니다.



top

Trackback Address :: http://xevious7.com/trackback/131

  1. subaru 2006/09/04 08:24 MODIFY/DELETE REPLY

    그래서 if문 아닌가요?ㅎㅎ

Write a comment