性能测试工具bench

This commit is contained in:
2026-03-05 08:45:23 +00:00
parent a190bdeea5
commit c4e9bedd0a
19 changed files with 2108 additions and 1984 deletions

View File

@@ -120,15 +120,26 @@ int kvs_array_exist(kvs_array_t *inst, char *key);
#if BIN_SAFE
typedef uint8_t KEY_TYPE; // key
// 固定部分结构
typedef struct {
unsigned char color;
struct _rbtree_node *right;
struct _rbtree_node *left;
struct _rbtree_node *parent;
uint32_t key_len;
uint32_t value_len;
} rbtree_node_fixed;
// 完整节点结构(用于类型定义,实际内存大小由分配时确定)
typedef struct _rbtree_node {
unsigned char color;
struct _rbtree_node *right;
struct _rbtree_node *left;
struct _rbtree_node *parent;
KEY_TYPE *key;
uint32_t key_len;
KEY_TYPE *value;
uint32_t value_len;
unsigned char color;
struct _rbtree_node *right;
struct _rbtree_node *left;
struct _rbtree_node *parent;
uint32_t key_len;
uint32_t value_len;
// 动态数据key[key_len] + value[value_len]
// 不存储为结构体成员,通过指针运算访问
} rbtree_node;
typedef struct _rbtree {
@@ -187,26 +198,32 @@ int kvs_rbtree_exist(kvs_rbtree_t *inst, char *key);
#endif
#if ENABLE_HASH
#if BIN_SAFE
#define MAX_TABLE_SIZE 1024
typedef struct hashnode_s {
uint8_t *key;
size_t key_len;
uint8_t *value;
size_t value_len;
struct hashnode_s *next;
} hashnode_t;
typedef struct hashtable_s {
hashnode_t **nodes;
int max_slots;
int count;
} hashtable_t;
#if ENABLE_HASH
#if BIN_SAFE
typedef struct hashnode_s {
uint32_t key_len; // key 长度
uint32_t value_len; // value 长度
struct hashnode_s *next; // 链表指针
// 动态数据key[key_len] + value[value_len]
// 不存储为结构体成员,通过指针运算访问
} hashnode_t;
typedef struct hashbucket_s {
hashnode_t *head; // 桶内链表
uint32_t local_depth; // 桶的局部深度
uint32_t item_count; // 桶内元素数量
struct hashbucket_s *next_all; // 用于统一释放/遍历所有桶
} hashbucket_t;
typedef struct hashtable_s {
hashbucket_t **directory; // 目录,指向桶
uint32_t dir_size; // 目录大小2^global_depth
uint32_t global_depth; // 全局深度
int count; // 当前元素总数
hashbucket_t *bucket_list;// 所有唯一桶链表
} hashtable_t;
typedef struct hashtable_s kvs_hash_t;