
内存池
文章平均质量分 97
内存池
源代码•宸
我们终此一生,就是要摆脱他人的期待,找到真正的自己
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存池(C++)v3 | 简历写法 | 相关面试题
本项目优化了内存池中的ThreadCache与CentralCache交互机制,改为批量申请内存模式。ThreadCache根据对象大小动态计算批量申请数量(如32字节以下每次申请64块),通过fetchFromCentralCache方法从CentralCache批量获取内存。CentralCache使用自旋锁保护并发访问,当内存不足时从PageCache获取大块内存并切分。该设计减少了高频小内存申请的锁竞争,提升性能。关键优化点包括:批量申请策略(最大4KB/次)、动态批量数计算、自旋锁配合线程让步机制原创 2025-07-13 09:19:50 · 1007 阅读 · 0 评论 -
内存池(C++)v2
这个项目实现了一个高效的内存池,旨在优化内存分配和释放的性能,特别是在多线程环境下。用户程序分配/释放内存 | ↓ThreadCache(线程本地缓存) - 提供快速的线程私有内存分配/回收 | ↓ (本地内存不足时批量获取/释放)CentralCache(全局缓存) - 处理线程间共享的内存块管理 | ↓ (全局内存不足)PageCache(页级内存管理,向操作系统申请大块内存)// 使用无锁的span信息存储。原创 2025-07-11 17:54:20 · 1551 阅读 · 0 评论 -
内存池(C++)v1
内存池是一种预先分配并管理内存块的技术,主要用于解决小内存频繁申请释放导致的内存碎片和性能问题。该项目借鉴STL allocator的哈希桶思想,通过维护不同槽尺寸(8-512字节)的内存池来优化内存分配。当申请内存超过512字节时直接调用系统函数。内存池结构包含哈希桶和多个MemoryPool,每个MemoryPool采用块链表管理内存,使用自旋锁保证线程安全。该方案有效控制内存碎片,但存在内存浪费和固定块大小的限制。项目参考了GitHub上的MemoryPool实现,适用于高并发场景下的小内存分配需求。原创 2025-07-06 17:58:58 · 1050 阅读 · 0 评论