从零实现一个高并发内存池(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

相关推荐
王老师青少年编程10 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【反悔贪心】:种树
c++·算法·贪心·反悔贪心·csp·信奥赛·种树
c++之路10 小时前
C++ 高频易错点
java·jvm·c++
wuminyu10 小时前
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析
java·linux·c语言·jvm·c++
charlie11451419111 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
wj30558537811 小时前
CMake 项目切换 Ninja 构建问题排查记录
c++
汉克老师11 小时前
GESP2025年6月认证C++五级( 第一部分选择题(1-8))
c++·链表·线性筛·最大公约数·gesp5级·gesp五级·埃氏筛
tjl521314_2111 小时前
03C++ 定位 new 运算符(Placement new)
开发语言·c++
乐观勇敢坚强的老彭11 小时前
c++信奥循环嵌套讲解
开发语言·c++
十五年专注C++开发11 小时前
Qt实现带多选功能的组合复选框
开发语言·c++·qt·qcombobox
郭源潮111 小时前
从8k嘈杂到16k清晰,我是如何使用RNNoise+libresample构建音频降噪管道的?
c++·音视频·实时音视频