From 2561a007b8d8999a4750046d0cfb3b1ad5af50ac Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 09 四月 2024 15:29:32 +0800
Subject: [PATCH] test for perf

---
 src/shm/hashtable.h |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/shm/hashtable.h b/src/shm/hashtable.h
index e43029c..55e0356 100755
--- a/src/shm/hashtable.h
+++ b/src/shm/hashtable.h
@@ -5,15 +5,23 @@
 #include <functional>
 #include <set>
 
-#define MAPSIZE 100
+#define START_KEY 1000
+#define MAPSIZE 4096
+
+// 鍒涘缓Queue鏁伴噺鐨勪笂闄�
+#define QUEUE_COUNT_LIMIT 300
 
 typedef struct hashtable_t
 {
  struct tailq_header_t* array[MAPSIZE];
  int mutex;
+ int queueCount;
+ int currentKey; // 褰撳墠鍒嗛厤鐨刱ey
  // int wlock;
  // int cond;
  // size_t readcnt;
+
+ 
 
 } hashtable_t;
 typedef void (*hashtable_foreach_cb)(int key, void *value);
@@ -21,16 +29,17 @@
 void hashtable_init(hashtable_t *hashtable);
 void hashtable_destroy(hashtable_t *hashtable);
 void *hashtable_get(hashtable_t *hashtable, int key);
-void hashtable_put(hashtable_t *hashtable, int key, void *value);
-void *hashtable_remove(hashtable_t *hashtable, int key);
-void hashtable_removeall(hashtable_t *hashtable);
+void hashtable_put(hashtable_t *hashtable, int key, void *value) ;
+bool  hashtable_check_put(hashtable_t *hashtable, int key, void *value, bool overwrite) ;
 
-int hashtable_lock(hashtable_t *hashtable);
-int hashtable_unlock(hashtable_t *hashtable);
+static inline void _hashtable_remove(hashtable_t *hashtable, int key);
+void hashtable_remove(hashtable_t *hashtable, int key);
+void hashtable_removeall(hashtable_t *hashtable);
+int hashtable_get_queue_count(hashtable_t *hashtable) ;
 /** 
  * 閬嶅巻hash_table
  * @demo 
- * hashtable_foreach(&hashtable, [&](int key, void * value){
+ * hashtable_foreach(hashtable, [&](int key, void * value){
  *	printf("%d, %p\n", key, value);
  * });
  * 

--
Gitblit v1.8.0