카테고리 없음
속도VS공간
게임이좋다
2010. 11. 14. 18:21
비트필드를 불리언으로 쓰는게 좋은가에 대한 글을 봤는데.
최근 CPU가 16, 32비트 단위로 일을하는 경우가 많아서
잘라내고 하는 등 부가적인 처리를 하면
오히려 성능에 나쁘지 않을까 하는 이야기를 봤다.
*일단 비트를 잘라내는 건, 생각보다 쉽다. 미리 준비해둔 마스크( unsigned char maskType=0x0100; )과
AND를 하면 쉽고 빠르게 체크를 할 수 있다. 경우에 따라 여러 플래그를 동시에 체크할 수도 있고.
*한편 CPU속도가 빨라진만큼, 공간을 아끼는게 좋은 경우도 많다. 좋은 예는 동영상과 음성파일이다.
*디아블로2같은 경우, 무기의 성능에 비트단위로 자른 스텟을 붙이는 걸 봤다.
아마 서버에 저장해야되는 아이템의 정보를 절약하려면 필수적인 조치였던거 같다.
*한편, 무작정 공간을 낭비하는 방향을 잡으면 오히려 역효과가 날 수도 있다.
1메가에 넣을 자료를 8메가에 넣고, 1기가에 들어갈 자료를 8기가에 넣는다고 생각해보자.
로딩이나 메모리 복사 등에 걸리는 시간도 길어지고, 메모리 안에서 다 할일도 로딩을 반복해야할 수도 있다.
공간을 희생해서 속도를 얻는다는 목표에서 어긋나게 되는것.
*결국은 프로그램의 용도가 중요하다고 하겠다. 비트단위로 아낄 수 있는 용량이 많다면
써야 될 거고, 득이 크지 않으면 안써야겠지.
*흠. 비트단위로 들어갈 정보를 묶어서 넣는게 일반적이지만, 남는 공간을 활용하는 것도 좋을거 같다.
예를 들어 인간의 나이는 7비트로 충분하다. 남는 1비트를 쓸 수 있는것.