自实现内存池:按大小分桶,8bit跨度,支持释放。

resp协议pipline测试。
This commit is contained in:
1iaan
2026-01-25 10:07:11 +00:00
parent ba2004c258
commit 9e757ece87
22 changed files with 515 additions and 11388 deletions

View File

@@ -1,15 +1,21 @@
CC = gcc
FLAGS = -g -DJEMALLOC_NO_DEMANGLE -I./NtyCo/core/ -I/usr/include/libxml2 -L ./NtyCo/ -L ./mem_pool/ -L ./diskuring/
LDFLAGS = -lntyco -lpthread -luring -ldl -lxml2
SRCS = kvstore.c ntyco.c proactor.c reactor.c kvs_array_bin.c kvs_rbtree_bin.c kvs_hash_bin.c kvs_rw_tools.c kvs_protocol_resp.c kvs_oplog.c kvs_slave.c ./mem_pool/mem_pool.c ./common/config.c ./diskuring/diskuring.c
CFLAGS = -g -DJEMALLOC_NO_DEMANGLE
NET_SRCS = ntyco.c proactor.c reactor.c kvstore.c
KV_SRCS = kvs_array_bin.c kvs_rbtree_bin.c kvs_hash_bin.c kvs_rw_tools.c kvs_protocol_resp.c kvs_oplog.c kvs_slave.c
MEM_SRCS = ./memory/mempool.c ./memory/alloc_dispatch.c
COMMON_SRCS = ./common/config.c ./diskuring/diskuring.c
SRCS = $(NET_SRCS) $(KV_SRCS) $(MEM_SRCS) $(COMMON_SRCS)
INC = -I./NtyCo/core/ -I/usr/include/libxml2
LIBDIRS = -L./NtyCo/ -L./memory/ -L./diskuring/
LIBS = -lntyco -lpthread -luring -ldl -lxml2 -ljemalloc
TARGET = kvstore
SUBDIR = ./NtyCo/
TESTCASE = testcase
TESTCASE_SRCS = testcase.c
TESTCASE2 = ./test/testcase
TESTCASE2_SRCS = ./test/testcase.c ./test/test_client.c
TEST_REDIS = ./test-redis/testcase
TEST_REDIS_SRCS = ./test-redis/test.c
@@ -18,7 +24,7 @@ TEST_REDIS_LDFLAGS = -lhiredis
OBJS = $(SRCS:.c=.o)
all: $(SUBDIR) $(TARGET) $(TESTCASE) $(TESTCASE2) $(TEST_REDIS)
all: $(SUBDIR) $(TARGET) $(TEST_REDIS)
$(SUBDIR): ECHO
make -C $@
@@ -27,21 +33,15 @@ ECHO:
@echo $(SUBDIR)
$(TARGET): $(OBJS)
$(CC) -o $@ $^ $(FLAGS) $(LDFLAGS)
$(TESTCASE): $(TESTCASE_SRCS)
$(CC) -g -o $@ $^
$(TESTCASE2): $(TESTCASE2_SRCS)
$(CC) -g -o $@ $^
$(CC) $(CFLAGS) -o $@ $^ $(LIBDIRS) $(LIBS)
$(TEST_REDIS): $(TEST_REDIS_SRCS)
$(CC) -g -o $@ $^ $(TEST_REDIS_LDFLAGS)
%.o: %.c
$(CC) $(FLAGS) -c $^ -g -o $@
$(CC) $(CFLAGS) $(INC) -c $^ -g -o $@
clean:
rm -rf $(OBJS) $(TARGET) $(TESTCASE) $(TESTCASE2) $(TEST_REDIS)
rm -rf $(OBJS) $(TARGET) $(TEST_REDIS)