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

相关推荐
玖玥拾6 小时前
C/C++ 基础笔记(十四)多态与模板编程
c语言·c++·多态·模板
Roann_seo%7 小时前
C++文件操作完全指南:从文本读写到二进制文件处理
开发语言·c++
坚果派·白晓明8 小时前
【鸿蒙PC】SDL3 适配:AtomCode + Skills 快速集成 NAPI 测试工具
c++·华为·ai编程·harmonyos·atomcode
凡人叶枫8 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
凡人叶枫9 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
不吃土豆的马铃薯10 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
.千余10 小时前
【C++】C++继承入门(下):友元、静态成员与菱形继承的底层逻辑
开发语言·c++·笔记·学习·其他
初中就开始混世的大魔王11 小时前
6 Fast DDS-传输层
开发语言·c++·中间件·信息与通信
代码中介商13 小时前
C++ 智能指针完全指南(三):weak_ptr 与循环引用
开发语言·c++
BestOrNothing_201513 小时前
ROS2 C++ 小车控制完整实战(二):自定义 msg 消息发布与订阅保姆级教程
c++·ros2·subscriber·publisher·msg·topic通信·自定义接口