Netty 라는 오픈소스를 살펴보다가 4.0 에 pool buffer 를 구현하는데 jemalloc 를 참고 했다는 언급이 있어
서 처음 알게되었습니다. malloc 레벨에서 이러한 작업결과들이 있다는걸 이제서야 알게되었네요.
jemalloc 함수는 Jason Evans라는 사람에 의해 만들어 졌습니다. (앞자를 따서 je). 일반적인 목적의 malloc 이
며, 2005년에 FreeBSD의 libc할당자로 채택되어졌습니다. 메모리단편화를 최소 화하는데 집중되었으며 멀티
프로세서/멀티쓰레드 시대에 맞게 병렬화 지원을 확장하였습니다. 이 메모리 할당자는 현재 나와있는 메모리
할당자중 성능이 가장 좋다고 알려져 있습니다. 기본적인 malloc 함수에 비해 두 배가 넘는 성능을 보인다고
합니다. jemalloc 에 관한 유명한 문서로
가 있습니다. http://www.canonware.com/jemalloc/index.html 는 홈페이지이며
논문은 http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf 를 참고하시면 됩니다.
buddy allocation와 slab allocation 는 jemalloc 를 이해하기위한 기반이론입니다.
'소프트웨어 사색' 카테고리의 다른 글
| WebRTC (0) | 2015.11.13 |
|---|---|
| 객체 복제 in Polyglot (0) | 2015.11.13 |
| 소프트웨어 개발/코딩용 폰트 끝판왕들~ (0) | 2015.09.08 |
| 인터프리터 언어는 컴파일 언어보다 느린가? (0) | 2015.08.01 |
| 정규표현식 (Regex) 정리 (10) | 2015.07.23 |