2011년 3월 14일 월요일

Memory Allocator for Multithreaded Applications

tcMalloc : google에서 만듬. 작은 사이즈의 allocation에 최적화 된 것으로 보임.linux에서만 테스트.
Intel TBB scalable_allocator : Intel TBB에 포함. new/malloc도 대체함.
 scalable_allocator를 통해서 thread specific heap을 제공함.
libHoard : Emery Berge 박사가 만듬. 꽤 오래된 라이브러리. thread증가에 따라서 선형적으로 speed up이 나타나는 그래프가 인상적. GPL license.
nedMalloc : 오픈소스. 간단함. 다른 것들보다 다 빠르다고 주장함. Windows에 최적화.dlmalloc이 근간.bitwise tries 인상적.
MTS : memory tuning system ( evaluation을 신청해야 구할 수 있음. ) whitepaper내용이 부실한 것으로 봐서 신뢰가 잘 안 감.
jemalloc : linux,macosx에 최적화.firefox에서 쓰임.



어떤 것을 선택하느냐는, 어플리케이션에 따라 달라져야 한다고 본다.
그런데, 기본적으로 선택해야 할 기준은 있다. 바로 안정성이다.
* 안정성 : 속도가 빠르다고 해서 안정성을 해쳐서는 안된다. 더구나 근간이 되는 메모리 할당에 관해서는 절대적으로 필요한 요소이다.

시간이 되면, 테스트 프로그램을 만들어, 결과를 올려봐야겠다.
현재로서는 nedMalloc과 Intel TBB을 함께 쓰면 어떨까한다.

도움이 되셨다면, 광고 클릭을 ㅎㅎ ^^