从零实现一个高并发内存池(1)--- 项目介绍

大家好,从这一期博客开始,我将带领大家从零开始实现一个 C++ 标准项目 --- 高并发内存池,该项目汲取了谷歌 tcmalloc 的精华,实现一个简化版的高并发内存池。

一:项目描述

当前项目是要去实现一个高并发的内存池 ,他的原型是 google 的一个开源项目 tcmalloctcmalloc 全称 Thread-Caching Malloc,即线程缓存的 malloc,实现了高效率的多线程内存管理,用于替代系统提供的内存分配相关的函数(malloc、free)。

相比 malloc,tcmalloc 在多线程环境下可以作为更高效的内存管理方式。

**当前我这个项目是要把 tcmalloc 最核心的框架简化出来之后,模拟实现出一个自己的高并发内存池,**目的就是去学习 tcmalloc 的精华,感受我们和高手之间的差距,这种方式有点类似于 C++ STL 的学习,但是相比于 STL 容器部分,tcmalloc 的代码量和复杂度上升了很多,但是,难度的上升,我们的收获和成长也会同步上升。

另一方面,tcmalloc 是全球顶级大厂 google 开源的,可以认为是当时最顶尖的 C++ 高手写出来的,他的知名度也是非常高的,不少公司都在使用它,Go 语言直接用它做了自己的内存分配器。所以很多程序员是熟悉这一个项目的,那么有好处也会有坏处。好处就是把这个项目理解扎实了,会很受面试官的认可。坏处就是面试官可能也比较熟悉这一个项目,对项目会问的比较深,比较细。如果你对项目掌握的不扎实,那么就容易碰钉子。

二:项目知识需求

这个项目会用到 C/C++ 语言、数据结构(链表、哈希桶)、Linux操作系统环境、进程、线程、操作系统内存管理、单例模式、多线程、互斥锁等等方面的知识。难度较高。

三:什么是内存池

1. 池化技术

2. 内存池

3. 内存池主要解决的问题

4. malloc

相关推荐
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
郝学胜_神的一滴3 天前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
见过夏天4 天前
C++ 基础入门完全指南
c++
用户805533698035 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK5 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境6 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境6 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴7 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境9 天前
C++ 的Eigen 库全解析
c++
卷无止境9 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端