모바일 게임 서버를 위한 고정크기 메모리 풀 관리 방법
Fixed Size Memory Pool Management Method for Mobile Game Servers
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
모바일 환경에서의 게임 서버는 클라이언트의 요청을 처리하는 버퍼를 생성하기 위해 일반적으로 동적 메모리 할당을 빈번하게 수행한다. 이는 시스템에 부하를 가중시키고 메모리 단편화를 발생시키게 되어 게임 서버의 성능을 저하시킨다. 본 논문에서는 이러한 문제를 해결하기 위해 고정크기 메모리 풀 관리 방법을 제안한다. 제안하는 방법에서의 메모리 풀은 원형 연결 리스트 형태의 순차적 메모리 구조를가지며, 이를 통해 게임 서버에서의 메모리 단편화 문제를 해결하고, 메모리 할당과 해제를 위해 필요한 메모리 블록의 탐색 시간 비용을줄일 수 있다. 실험에서는 제안하는 방법과 잘 알려진 오픈소스 메모리 풀 라이브러리(boost) 기반의 메모리 풀 관리방법을 이용하여, 동적할당을 수행할 때의 성능평가를 통해 해당 기법의 효율성을 보이도록 한다.
Abstract
Mobile game servers usually execute frequent dynamic memory allocation for generating the buffers that deal with clients requests. It causes to deteriorate the performance of game servers since it increases system workload and memory fragmentation. In this paper, we propose fixed-sized memory pool management method. Memory pool for the proposed method has a sequential memory structure based on circular linked list data structure. It solves memory fragmentation problem and saves time for searching the memory blocks which are required for memory allocation and deallocation. We showed the efficiency of the proposed method by evaluating the performance of dynamic memory allocation, through the proposed method and the memory pool management method based on boost open source library.
참고문헌 (17)
- J. Lim, "Technical Trend of Distributed Game Server", Electronics and Telecommunications Trends, 20(4), pp.93~102 (2005)
- Thor Alexander, "Massively Multiplayer Game Development", pp.210~230 (2003), Charles River Media
- D. Hahn, "Programming Benchmark of Online Game Server" (2008), Information Publishing Group
- "C dynamic memory allocation"[URL]
- Abraham Silberschatz, "Operating System Concepts" (2008), Hongrung Publishing Co
- "Memory Pool"[URL]
- Andre Alexandrescu, "MODERN C++ Design: Generic Programming and Design Patterns Applied" (2001), Addison-Wesley
- "C++ Boost Library"[URL]
- "PJLIB"[URL]
- Jonatan Pålsson, "A Generic Game Server", University of Gothenburg, Department of Computer Science and Engineering, ~ (2011)
- Vlad Mihai Alecu, "Developing a Client-Server Architecture and Minimizing Data Transfer for a Massively Multiplayer Online Game", Utrecht University, Game and Media Technology, ~ (2012)
- "Microsoft IOCP"[URL]
- "C++ Memory Pool and Angra"[URL]
- 조동일, "서버 푸시를 위한 이벤트 기반 서버간 메시지 교환 아키텍처의 설계 및 구현", 인터넷정보학회논문지, 12(4), pp.181~194 (2011), 한국인터넷정보학회
- 김성백, "가상화 기법을 사용한 경계 없는 캐쥬얼 게임 서버 설계 및 구현", 한국산업정보학회논문지, 17(4), pp.25~40 (2012), 한국산업정보학회
- "Why to use memory pool and how to implement it" (2008)[URL]
- "QueryPerformanceCounter"[URL]
