jemalloc
/tcmalloc
과 같은 고성능 범용 할당자를 메모리 풀에 사용하고 싶습니다. 이 일을위한 가이드가 있습니까? malloc
의 드롭 인 대체품으로 jemalloc
/tcmalloc
을 사용하고 싶지 않습니다.tcmalloc/jemalloc을 사용자 정의 메모리 풀 관리자와 함께 사용
나는 libarena
을 사용하는 메모리 풀을 가지고 있으며 대용량 메모리 영역 (2GB)을 조각합니다. 고정 된 크기의 객체 풀을 gslice
과 같이이 경기장에 1GB 정도 만들고 싶습니다. (Bonwick 슬랩 할당 자처럼) 가변 크기의 범용 할당을 위해 나머지 메모리를 사용하고 싶습니다. jemalloc
/tcmalloc
이 메모리 영역을 사용하고 싶습니다. 이것이 가능한가? 어떻게 진행할 수 있을지에 대한 아이디어가 있습니까? 대체 라이브러리가있는 경우 이에 대해서도 듣고 싶습니다.
행운을 빌어 이것에 대한 답변을 얻었으니이 답변을 정말로 원했습니다. 내 http://stackoverflow.com/questions/23341587/malloc-like-function-using-custom-heap 자신의 질문을 참조하십시오. – Vality
우리 애플 리케이션을 위해 특별히 할당자를 썼다. 진정한 멋진 아이디어로 밝혀진 한 가지는 모든 가능한 할당을 소수의 "양자"크기로 줄이는 개념이었습니다. 4k = 8 바이트 미만, 4k..16k = 16 바이트 ... 최대 64MB까지 나는 최대 1000MB 크기까지 64MB까지 밖에 가지 못했습니다. 낭비 된 공간의 크기가 할당 크기의 함수이기 때문에 낭비 된 램은 낮았다. 이것은 각 크기에 대한 재활용 더미를 허용했습니다. 더미는 그 크기만큼 비어 있지 않은 한 무료였습니다. alloc은 팝이었습니다. – johnnycrash
나는 당신에게 답이 없지만, 여기에 사용자 정의 할당자를위한 추가 영역으로 메모리를 할당하는 것에 관한이 jemalloc 스레드에 대한 유용한 정보를 찾을 수 있습니다 : http://www.canonware.com/pipermail/jemalloc-discuss/2015 -January/000988.html – acanaday