目录
一,项目介绍
高并发内存池项目是一个goole的开源项目,用于解决一些向系统申请内存的特定问题。大部分情况下,使用malloc申请便可。特定情况下为了提高效率需要使用到特定的内存池来申请。
二,项目定位
该项目是一个模仿goole的高并发内存池项目——tcmalloc(线程缓存malloc)实现的项目,主要实现tcmalloc的一些核心功能。
三,基础知识
在做该项目时需要储备以下知识:
1,C/C++
2,数据结构(链表、哈希桶)
3,操作系统内存管理、单例模式、多线程、互斥锁
池化技术介绍
所谓“池化技术”,就是程序先向系统申请过量的资源,然后⾃⼰管理,以备不时之需。之所以要申 请过量的资源,是因为每次申请该资源都有较⼤的开销,不如提前申请好了,这样使⽤时就会变得⾮ 常快捷,⼤⼤提⾼程序运⾏效率。在计算机中,池化技术被大量使用,比如:线程池,进程池。
内存碎片
当出现如上图中的情况时,我再申请600字节的空间便会出现申请不了的情况。这就是内存碎片,内存中的空间足够但是没有一块连续的足够大的空间出现申请不上的问题。
四,为什么要学习这个项目
1,项目实用性强
Go语言直接用它做了自己内存分配器。所以很多程序员是熟悉这个项目的,那么有好处,也有坏处。好处就是把这个项目理解扎实了,会很受面试官的认可。坏处就是面试官可能也比较熟悉项目,对项目会问得比较深,比较细。如果你对项目掌握得不扎实,那么就容易碰钉子。
2,学习C++的顶尖思想
该项目是C++顶尖大厂goole的项目,做该项目会有一种和C++顶尖高手交流的感觉,能学习到他们的思想。
所以,我们开始学习吧!!!