ebpf的主从同步实现,QPS测试与内存池QPS测试。

This commit is contained in:
1iaan
2026-01-30 16:00:06 +00:00
parent 2bdb48d63d
commit fbdcff6878
23 changed files with 599 additions and 383 deletions

View File

@@ -9,7 +9,7 @@
mp_pool_t global_mempool;
static atomic_int g_memory_mode = ATOMIC_VAR_INIT(MEMLEAK_DETECT_OFF);
static atomic_int g_memory_mode = ATOMIC_VAR_INIT(ALLOC_OTHER);
static atomic_int g_memleak_detect_mode = ATOMIC_VAR_INIT(MEMLEAK_DETECT_OFF);
// 设置内存池类型
@@ -36,7 +36,7 @@ MemLeakDetectMode kvs_get_memleak_detect(void) {
void *kvs_malloc_impl(size_t size){
switch (atomic_load(&g_memleak_detect_mode)){
switch (atomic_load(&g_memory_mode)){
case ALLOC_MALLOC:
return malloc(size);
case ALLOC_MYPOOL:
@@ -51,7 +51,7 @@ void *kvs_malloc_impl(size_t size){
}
void kvs_free_impl(void *ptr) {
switch (atomic_load(&g_memleak_detect_mode)){
switch (atomic_load(&g_memory_mode)){
case ALLOC_MALLOC:
free(ptr);
break;
@@ -75,20 +75,20 @@ void kvs_free_impl(void *ptr) {
void *nMalloc(size_t size, const char * filename, const char *func, int line){
void *ptr = kvs_malloc_impl(size);
if(atomic_load(&g_memleak_detect_mode) == MEMLEAK_DETECT_ON) {
char buff[128];
snprintf(buff, 128, "./mem_leak/%p.mem", ptr);
FILE* fp = fopen(buff, "w");
if(!fp){
kvs_free(ptr);
return NULL;
}
// if(atomic_load(&g_memleak_detect_mode) == MEMLEAK_DETECT_ON) {
// char buff[128];
// snprintf(buff, 128, "./mem_leak/%p.mem", ptr);
// FILE* fp = fopen(buff, "w");
// if(!fp){
// kvs_free(ptr);
// return NULL;
// }
fprintf(fp, "[+] [%s:%d:%s] [%p:%ld]\n", filename, line, func, ptr, size);
fflush(fp);
fclose(fp);
// fprintf(fp, "[+] [%s:%d:%s] [%p:%ld]\n", filename, line, func, ptr, size);
// fflush(fp);
// fclose(fp);
}
// }
return ptr;
}
@@ -97,15 +97,15 @@ void nFree(void *ptr, const char * filename, const char *func, int line){
return ;
}
if(atomic_load(&g_memleak_detect_mode) == MEMLEAK_DETECT_ON) {
char buff[128];
snprintf(buff, 128, "./mem_leak/%p.mem", ptr);
// if(atomic_load(&g_memleak_detect_mode) == MEMLEAK_DETECT_ON) {
// char buff[128];
// snprintf(buff, 128, "./mem_leak/%p.mem", ptr);
if(unlink(buff) < 0) {
return ;
}
// if(unlink(buff) < 0) {
// return ;
// }
}
// }
kvs_free_impl(ptr);
}