2009년 7월 4일 토요일

메모리 할당기 1 (Chunk)

요즘 Modern c++ Design을 조금 봤는데...... 템플릿에 대해 조금더 알아가고 있는거 같네요;;;ㅋㅋㅋ;;

거기에 있는 메모리 할당 매커니즘을 보고 저두 제가 쓸 메모리 할당기를 하나 만들려고 합니다.....
책에 나왔던 테크닉에 관한 것들은 이미 boost에서 만들어서 제공하는것들이 많더라구요.
그래서 저는 그분분들은 직접만들지 않고 boost 를 사용했습니다.

우선 메모리 할당기를 위한 가장 작은놈부터 ....... Chunk만 만들고 다음에 전체 Allocator, ObjectAllocator 등을 만들어 보져..ㅎㅎ;;


Lock.hpp

펼쳐두기..

Lock 은 boost의 Lock에서 windows 부분을 때어서 그대로 사용한거입니다.



Chunk.hpp

펼쳐두기..

Chunk에 비교 연산자는 나중에 Allocator에서 여러개의 Chunk를 효율적으로 찾기위해
추가를 하였습니다. ㅎㅎㅎㅎ;;( 계획만... 실제 쓸지 안쓸지는 Allocator를 만들어봐야....)



TestChunk.cpp

펼쳐두기..


테스트 코드는 googletest(gtest)를 사용하였습니다.
그리고 우선은 chunk의 기능 테스트에 중점을 두었구요.
다 만든후에 성능에 관한 테스트 코드를 추가해서 성능도 보아야겠고, 쓰레드에 안전한지도 보아야겠네요.
ㅎㅎㅎㅎㅎㅎ;;;
그럼 다음엔 이 Chunk를 이용한 Allocator, ObjectAllocator를 만들어 보겠습니다.

댓글 없음:

댓글 쓰기