项目(一)--高并发内存池项目简介

什么是高并发内存池

它是一个全球性大厂google(谷歌)的
开源项目,项目名字叫tcmalloc,全称是
Thread-Caching Malloc,即线程缓存的malloc

作用:

我们知道C语言在堆上开辟空间和
释放使用的是malloc和free函数
并且C++的动态内存管理new和delete
的底层实际上也调用了malloc和free
也就是说在所有场景下malloc函数都可以
使用,但是正是因为这种性质导致它在任何
情况下的效率都不太高,所以谷歌才自己做了
一套并发内存池的项目来解决在多线程情况下
malloc效率低下的问题,也就是说这个项目的
目的是在特定情况下代替C语言的malloc和free!

当然,我们去复刻一个一模一样的内存池也是不可能的,代码量太大,甚至读完代码都需要很长时间!所以我们这个项目的tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcamlloc的精华。

什么是内存池

什么是池化技术?

就像我们上大学时父母给我们的生活费,一次给一个月或者一学期的,这样方便自己管理,如果每一次消费都去问父母打电话去要,可想而知效率有多低,这是一个道理。

什么是内存池?

内存池所解决的问题

内存池主要解决的当然是效率的问题,其次如果作为系统的内存分配器的角度,还需要解决一下内存碎片的问题。那么什么是内存碎片呢?

现在这个程序有256+512=768个byte 的空间,

但是此时申请一份600byte的 空间却开不出来,

因为B申请的空间把这 768个byte的空间分割开了,

形成了内存碎片。

项目需要知识内容

这个项目会用到C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁

高并发内存池项目整体来说还是较难的,不过如果做好了还是很吃香的,把这个项目理解扎实了,会很受面试官的认可。但是面试官可能也比较熟悉项目,对项目会问得比较深,比较细。如果你对项目掌握得不扎实,那么就容易碰钉子。

相关推荐

  1. 【lesson12】并发内存项目最终完整版代码

    2024-06-18 00:02:05       28 阅读
  2. 电商项目并发缓存实践

    2024-06-18 00:02:05       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 00:02:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 00:02:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 00:02:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 00:02:05       20 阅读

热门阅读

  1. Glide 缓存机制研究及同命名图片的替换回显

    2024-06-18 00:02:05       9 阅读
  2. 多模态AI和机器人技术的演变

    2024-06-18 00:02:05       6 阅读
  3. C++ day3

    C++ day3

    2024-06-18 00:02:05      7 阅读
  4. Spring事务管理与Spring AOP详解

    2024-06-18 00:02:05       6 阅读
  5. MTU简介

    2024-06-18 00:02:05       6 阅读
  6. C语言笔记25 •顺序表介绍•

    2024-06-18 00:02:05       7 阅读
  7. 什么是内存泄漏?如何避免?

    2024-06-18 00:02:05       7 阅读
  8. spring-websocket实现(一)

    2024-06-18 00:02:05       7 阅读
  9. apache poi excel export

    2024-06-18 00:02:05       6 阅读