더북(TheBook)

얼핏 보기에는 직관적이고 괜찮은 방법 같지만, 여기에는 문제가 있습니다. 특별한 이유가 없는 한 몬스터 처리 평균 연산량은 1000클록 사이클 이하입니다. 그런데 정작 이보다는 몬스터 관련 메시지를 주고받는 처리량이 더 많을 수 있습니다. 메시지 1개를 비동기로 주고받는 데 수반되는 처리들인 소켓 함수 내부 처리, 운영체제 안에서 파일 시스템, 디바이스 드라이버 모듈과 상호 작용이 서로 맞물리기 때문입니다. 그리고 이러한 연산 대부분은 운영체제 안에서 일어나는데, 이들을 합산하면 2000클록 사이클을 훌쩍 넘습니다.

결과적으로 게임 서버 입장에서는 그림 10-33과 같이 실질적인 처리에 해당하는 300클록 사이클을 위해 4000클록 사이클이 운영체제에서 추가로 소모됩니다. 이렇게 되면 분산 처리를 하는 의미가 없어지지요.

p435

▲ 그림 10-33 해야 하는 연산량보다 메시지 송수신에 더 많은 처리량이 낭비됨

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.