Commit Graph

17 Commits

Author SHA1 Message Date
82d0167c81 feat(mempool)!: 添加内存追踪及修复多处内存泄漏
- 新增 mempool 模块用于统计内存分配次数并检测泄漏
- 启用 UNICSTL_MALLOC_CUSTOM 宏以接管标准库内存函数
- 修复 segarray 销毁时未释放 _mapfree 导致的内存泄漏
- 修复 darray 迭代器 next 方法中错误的对象访问方式
- 调整 segarray 不支持外部缓存
- 修复测试用例中未释放 arraylist 导致的误报
2026-05-17 14:13:33 +08:00
529cf60218 refactor(arraylist): 基于 darray 重构实现并支持负索引
- 将 arraylist 内部实现改为组合 darray 对象,委托核心操作至 darray
- 移除 arraylist 中冗余的内存管理代码(如手动维护 obj、capacity 等)
- 新增负索引支持(如 -1 访问末尾元素),完善 get/set/at 的边界检查
- 优化 darray 源码,使用内联辅助函数(obj_shift, obj_copy)封装指针操作
2026-05-17 12:57:20 +08:00
15ab80cc4d feat(logger): 新增文件日志功能,帮助我很快排查到了segarray_free的bug 2026-05-17 00:49:29 +08:00
8a65218105 feat(segarray): 实现随机访问,优化迭代器和头尾访问实现逻辑,并与ringbuf对比不同应用场景下的优劣 2026-05-16 22:18:59 +08:00
115646ecd4 refactor(core): 统一内存管理与日志宏接口 2026-05-16 17:55:47 +08:00
0dd45ed7dd refactor(segarray): 段使用rawbuf而不是darray,先按照最简单的方式调试通push和pop等操作 2026-05-15 19:01:37 +08:00
d36346ce00 feat(algo): 新增算法模块并给darray集成排序和查找功能,index底层改为调用search 2026-05-15 00:04:04 +08:00
97653622c1 stack->peek把data的内存给修改了,后续再排查一下原因 2026-05-13 19:27:38 +08:00
2278bad0a4 feat(perf): 重构性能测试框架(支持多组参数配置)并增加perf_log(利用darray实现并格式化输出) 2026-05-13 17:00:39 +08:00
cd6eff28a7 ringbuffer重构底层代码,并将obj和index的操作独立成内联函数,另外将deque的底层架构直接修改为ringbuffer 2026-05-12 18:42:43 +08:00
a58d480ae4 ringbuffer调试通过,疑问点:感觉复用darray相对于直接malloc并没有简化多少,只是把计算偏移这部分简化了。 2026-05-12 16:29:40 +08:00
26eeb65cc9 refactor(core)!: 重构链表核心API,增加 const 正确性与自定义断言
- 将所有打印和比较函数的参数指针从 `void*` 修改为 `const void*`,增强类型安全
- 引入自定义断言宏 `unicstl_assert` 及其实现,替换标准 `assert`
- 优化动态数组容量增长策略,新增 `unicstl_new_capacity` 函数
- 重构链表 接口:`push`/`pop` 重命名为 `push_back`/`pop_front`,新增 `push_front`/`pop_back`/`insert`/`remove`/`contains` 方法
- 移除链表结构体中未使用的 `_index_front` 和 `_index_back` 成员
- 在头文件中补充关键函数的时间复杂度注释
2026-05-12 02:26:21 +08:00
1532d3716c darray实现 2026-05-11 15:16:42 +08:00
4acdcf3ec7 开启assert后解决编译和测试问题 2025-04-28 00:59:03 +08:00
b396d80672 默认栈的迭代器从栈顶到栈底 2025-04-24 11:27:22 +08:00
07b2c142b8 给stack添加迭代器,但为什么heap会报错?? 2025-04-24 11:13:11 +08:00
1f82b7502c 先预留配置文件,如果后续用的上的话。 2025-04-22 23:45:23 +08:00