관리 메뉴

HAMA 블로그

jemalloc 이란? 본문

소프트웨어 사색

jemalloc 이란?

[하마] 이승현 (wowlsh93@gmail.com) 2015. 9. 9. 17:56

Netty  라는 오픈소스를 살펴보다가 4.0 에 pool buffer 를 구현하는데 jemalloc 를 참고 했다는 언급이 있어

서 처음 알게되었습니다.  malloc  레벨에서 이러한 작업결과들이  있다는걸 이제서야 알게되었네요. 

jemalloc 함수는 Jason Evans라는 사람에 의해 만들어 졌습니다. (앞자를 따서 je).  일반적인 목적의 malloc 이


며, 2005년에 FreeBSD의  libc할당자로 채택되어졌습니다. 메모리단편화를 최소 화하는데 집중되었으며 멀티


프로세서/멀티쓰레드 시대에 맞게 병렬화 지원을 확장하였습니다. 이 메모리 할당자는 현재 나와있는 메모리 


할당자중 성능이 가장 좋다고 알려져 있습니다. 기본적인 malloc 함수에 비해 두 배가 넘는 성능을 보인다고 


합니다. jemalloc 에 관한 유명한 문서로  


https://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919 


가 있습니다. http://www.canonware.com/jemalloc/index.html  는 홈페이지이며 


논문은 http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf  를 참고하시면 됩니다.


 buddy allocation와 slab allocation 는 jemalloc 를 이해하기위한 기반이론입니다.

Comments