测试用例编写

This commit is contained in:
2026-01-10 18:31:26 +08:00
parent 1adb24482b
commit 1a7c1c172c
13 changed files with 98 additions and 19 deletions

View File

@@ -10,19 +10,41 @@ save() -> 全保存数据集。
1. 会出现大量的内存碎片,实现一个内存池,管理内存数据。
2. 对比有内存池和没有内存池的性能差异,以及开源内存池 jemalloc 的性能差别。
`sudo apt-get install -y libjemalloc-dev`
3. 性能测:
1. qps 有没有内存池。
![alt text](img/无内存池.png)
2.虚拟内存的占用情况 htop。插入百万条数据集(KV*100wset 200w del 100w delete 200w set 100w)。
![alt text](img/未运行状态.png)
![alt text](img/200w插入100w删除.png)
![alt text](img/100w插入200w删除.png)
![alt text](img/无内存池200w条插入100w删除.png)
无内存池: --> time_used=1488789 ms, ops=6000000, qps=4030
![alt text](img/mpalloc200w插入100w删除.png)
自实现内存池: --> time_used=1439444 ms, ops=6000000, qps=4168
测试:
虚拟内存的占用情况 htop。插入百万条数据集(KV*100wset 200w del 100w delete 200w set 100w)。
##### 单条插入
未运行状态 VIRT 24.8M
![alt text](img/未运行状态.png)
无内存池: --> time_used=1488789 ms, ops=6000000, qps=4030\
VIRT 105M
![alt text](img/无内存池200w插入100w删除.png)
自实现内存池: --> time_used=1439444 ms, ops=6000000, qps=4168\
VIRT 135M
![alt text](img/mpalloc200w插入100w删除.png)
![alt text](img/jemalloc2000w插入100w删除.png)
jemalloc: time_used=1502797 ms, ops=6000000, qps=3992\
VIRT 99M
##### 批处理
一次执行100条。
无内存池:--> time_used=142913 ms, ops=6000000, qps=41983\
VIRT 99M
自实现内存池: --> time_used=122754 ms, ops=6000000, qps=48878\
VIRT 135M
jemalloc--> time_used=122206 ms, ops=6000000, qps=49097\
VIRT 99M
性能分析:
1. key :
1. A_0: mp_alloc (3+8B) -> 16B, malloc (3B) -> 8B