# ConcurrentMemoryPool **Repository Path**: bit--dream/concurrent-memory-pool ## Basic Information - **Project Name**: ConcurrentMemoryPool - **Description**: 高并发内存池 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-28 - **Last Updated**: 2024-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ConcurrentMemoryPool #### 介绍 高并发内存池 **项目描述:** 该项目原型是TCmalloc,实现了高效的多线程内存管理,对小块内存进行多次申请和释放要比系统函数(malloc、free)快一倍,并解决了线程安全和内存碎片问题。 **关键技术:** C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁 **开发环境:** Visual Studio 2019、C/C++ **项目简介:** - 该项目采用三重缓存 线程缓存 ThreadCache、中心缓存 CentralCache和页缓存 PageCache。 - 线程缓存 ThreadCache:线程独占哈希桶,不同的元素为映射到不同大小空间的链表。 - 中心缓存 CentralCache:使用单例模式使整个项目只有一个哈希桶,同样映射到不同区间,用于协调各线程之间内存资源。并在申请和释放内存时加了桶锁。 - 页缓存 PageCache: 缓存从系统申请的内存资源,并负责分配内存给 CentralCache 和从CentralCache 回收内存资源。 - 使用基数树对项目进行效率优化,使其在读写页号和 Span 的映射表时不需要加锁,减少了加锁和解锁的开销。