项目作者: shubhiM
项目描述 :
High speed memory allocation library in C
高级语言: C
项目地址: git://github.com/shubhiM/speedyLoc.git
speedyLoc: C library for dynamic memory allocation.
It uses the ideas from LFMalloc (Lock free malloc implementation) and TCMalloc to create a more time and memory efficient approach to
memory allocation in C Language.
Refer to the following literature for understanding implementation of LFMalloc and TCMalloc.
- Dice, David & Garthwaite, Alex. (2002). Mostly lock-free malloc. SIGPLAN Notices. 38. 269-280.
- http://goog-perftools.sourceforge.net/doc/tcmalloc.html
API’s implemented
void *malloc(size_t size);
void free(void *ptr);
Novelty:
- Fine grained size classes for small sized memory requests.
- Balance between number of size classes and fragmentation.
- Mostly Lock free approach to memory allocation to increase parallelism.
Results/Benchmarks
Performance comparison with libc malloc library for 10, 50, 500, 1000 threads. Please refer to docs for detailed benchmarks.
Existing Issues (Future work)
- High frequency of upcalls.
- Kernel driver does not support re-routing upcalls based on specific threads.
- Process can go into a cycle of upcall->kernel->upcall as the number of threads increases.