自实现内存池:按大小分桶,8bit跨度,支持释放。
resp协议pipline测试。
This commit is contained in:
30
memory/alloc_dispatch.c
Normal file
30
memory/alloc_dispatch.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "mempool.h"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <jemalloc/jemalloc.h>
|
||||
|
||||
mp_pool_t global_mempool;
|
||||
|
||||
void *kvs_malloc(size_t size) {
|
||||
#if MEMORY_SELECT_MALLOC == MEMORY_USE_DEFAULT
|
||||
return malloc(size);
|
||||
#elif MEMORY_SELECT_MALLOC == MEMORY_USE_MYMALLOC
|
||||
return mp_alloc(size);
|
||||
#elif MEMORY_SELECT_MALLOC == MEMORY_USE_JEMALLOC
|
||||
return je_malloc(size);
|
||||
#endif
|
||||
}
|
||||
|
||||
void kvs_free(void *ptr) {
|
||||
#if MEMORY_SELECT_MALLOC == MEMORY_USE_DEFAULT
|
||||
free(ptr);
|
||||
#elif MEMORY_SELECT_MALLOC == MEMORY_USE_MYMALLOC
|
||||
int ret = mp_free(ptr);
|
||||
if(ret == MEMPOOL_DOUBLE_FREE){
|
||||
printf("double free %p\n", ptr);
|
||||
}
|
||||
#elif MEMORY_SELECT_MALLOC == MEMORY_USE_JEMALLOC
|
||||
je_free(ptr);
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user