Multi-Thread에서의 동적할당.
글쓴이: sozu / 작성시간: 화, 2003/11/25 - 11:12오후
서버를 개발하는데요.^^
멀테스레딩을 하고 있습니다.
동적 자료구조를 수시로 할당하고 해제 해야 하는 상황입니다.
일단
C++ Run-time Lib.에 있는 new, delete로 했는데
약 2000개의 클라이언트가 붙으니까 메모리 참조 오류를 남기고 전사하더군요
두번째는
Windows에서 제공하는 Heap-, Virtual- 관련 함수들을 사용했는데
약 5000개 이상 까지 잘 버티더군요...끝내 죽지 않았습니다.(클라이언트를 늘릴수 없기에;;)
세번째는
제가 짰습니다. 동적 자료구조를 풀링하는 메모리 관리자를 만들었죠.
일단 두번째꺼보다 성능을 좋게 하기 위해 만든겁니다.
이것도 잘 버티었습니다.
두번째와 세번째는 Serialization을 지원합니다.
첫번째 실험에서 죽은 이유를
어떻게 설명할수 있는지 알려주셨으면 합니다.
혹은 제 실험에서 헛점이 있다면 알려주셨으면 합니다^_^
Forums:
malloc()은 thread-unsafe한 걸로 알고 있는데ne
malloc()은 thread-unsafe한 걸로 알고 있는데
new나 delete도 내부적으로는 malloc()을 쓸테고
Written By the Black Knight of Destruction
[quote="흑기사"]malloc()은 thread-unsafe한 걸로
Windows가 그렇단 말씀이시죠? glibc 에는 mutex가 들어 있는데..
아래소스는 대충 검색한 url 입니다.
http://www.mit.edu/afs/sipb/project/gcc-3.2/share/glibc-2.3.1/malloc/malloc.c
---
http://coolengineer.com
댓글 달기