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

相关推荐
wjlnew2 小时前
c++中的内存管理:栈,堆及RALL机制
c++
无限进步_2 小时前
【C语言】用队列实现栈:数据结构转换的巧妙设计
c语言·开发语言·数据结构·c++·链表·visual studio
千里马-horse4 小时前
TypedArrayOf
开发语言·javascript·c++·node.js·napi
YIN_尹4 小时前
【C++11】lambda表达式(匿名函数)
java·c++·windows
陳10304 小时前
C++:vector(2)
开发语言·c++
盖世灬英雄z4 小时前
数据结构与算法学习(一)
c++·学习·排序算法
CodeOfCC4 小时前
C++ 基于kmp解析nalu
c++·音视频·实时音视频·h.265·h.264
Sheep Shaun4 小时前
STL中的map和set:红黑树的优雅应用
开发语言·数据结构·c++·后端·c#
1001101_QIA5 小时前
【C++笔试题】递归判断数组是否是递增数组
开发语言·c++