# Project-Code **Repository Path**: ly121381/Project-Code ## Basic Information - **Project Name**: Project-Code - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-04 - **Last Updated**: 2025-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 高并发内存池 ## 介绍 这是一个用于管理内存分配的高并发内存池项目,旨在提升多线程环境下的内存分配效率和性能。项目通过实现高效的线程缓存、中心缓存和页缓存等模块,优化内存管理,减少锁竞争,适用于需要高频内存分配和释放的场景。 ## 软件架构 本项目采用多层架构设计,包括以下主要模块: - **ThreadCache**:每个线程拥有独立的缓存,用于快速响应内存分配请求,减少锁竞争。 - **CentralCache**:全局中心缓存,负责管理多个线程共享的内存资源,当ThreadCache无法满足请求时,从CentralCache获取内存。 - **PageCache**:页级缓存,负责管理物理内存页,将内存页分配给CentralCache。 - **ConcurrentAlloc/ConcurrentFree**:提供对外的内存分配和释放接口,支持多线程并发操作。 - **Benchmark**:基准测试模块,用于评估内存池的性能。 - **UnitTest**:单元测试模块,确保各模块功能的正确性。 ## 安装教程 1. 克隆仓库到本地: ```bash git clone https://gitee.com/your_project/ConCurrentMemoryPool.git ``` 2. 打开项目: - 使用 Visual Studio 打开 `ConCurrentMemoryPool/ConCurrentMemoryPool.sln`。 3. 编译项目: - 在 Visual Studio 中选择配置(Debug/Release),并编译解决方案。 ## 使用说明 - **内存分配**: ```cpp void* ptr = ConcurrentAlloc(size); // 分配指定大小的内存 ``` - **内存释放**: ```cpp ConcurrentFree(ptr, size); // 释放之前分配的内存 ``` - **性能测试**: - 运行 `Benchmark` 模块测试内存池在多线程环境下的性能。 - 示例: ```cpp BenchmarkMalloc(ntimes, nworks, rounds); // 测试标准malloc性能 BenchmarkConcurrentMalloc(ntimes, nworks, rounds); // 测试自定义内存池性能 ``` - **单元测试**: - `UnitTest` 模块包含多个测试函数,用于验证内存池各模块功能的正确性。 ## 参与贡献 我们欢迎社区贡献!以下是参与项目的几种方式: - 提交 bug 报告和功能建议。 - 提供优化建议或改进文档。 - 提交 pull request 以修复问题或添加功能。 ## 特技 - 支持高并发的内存分配和释放。 - 使用线程本地存储(TLS)减少锁竞争。 - 通过 Freelist 和 SpanList 管理内存块,提高内存利用率。 - 多级缓存结构(ThreadCache, CentralCache, PageCache)提升性能。 - 提供详细的性能测试和单元测试模块,便于验证和优化。