当前位置: 首页 > news >正文

高并发内存池项目介绍

💓博主CSDN主页:Am心若依旧409-CSDN博客💓

⏩专栏分类:项目记录_⏪


🚚代码仓库:青酒余成 🚚

🌹关注我🫵带你学习C++
  🔝🔝

1.前言

在经历一年多左右的时间学习,今天终于开始搞一个真正的项目了。

本篇文章主要给大家介绍什么是高并发内存池项目,以及为什么要
做这个项目,最后讲做这个项目需要什么知识储备

2.什么是高并发内存池项目?

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

那它具体是什么呢?它又有什么用呢?

我们知道C语言在堆上开辟空间和释放使用的是malloc和free函数

并且C++的动态内存管理new和delete的底层实际上也调用了malloc和free

也就是说在所有场景下malloc函数都可以使用,

但是如果需要频繁的申请内存呢?

那么我们就需要频繁的去调用函数,这样效率太低下了,

并且也有可能导致内存泄漏的问题,

由于这种种原因,

所以谷歌才自己做了一套

并发内存池的项目来解决在多线程情况下malloc效率低下的问题,

也就是说这个项目的目的是在特定情况下代替

C语言的malloc和free!和c++中的new和delete

当然谷歌的开源项目的源码的代码量十分巨大!如果我们要实现一个和它一模一样的内存池,代价太大了!所以我们只把谷歌这个项目的tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcamlloc的精华,这种方式有点类似我们之前学习STL容器的方式。但是相比STL容器部分,tcmalloc的代码量和复杂度上升了很多,大家要有心理准备。当前另一方面,难度的上升,我们的收获和成长也是在这个过程中同步上升!!

少年,加油吧,怀着激动地心向高手学习,你才能慢慢成为一个高手

3.什么是内存池?

在了解什么是内存池之前,先了解什么是池化技术。

什么是池化技术?

我们在学习Linux时学过线程池,
它就是池化技术的体现之一

 内存池就是池化技术的一种。

2.什么是内存池?

4.内存池解决什么问题?

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

5.为什么要选择做这个项目?

有以下两个原因。

1.这个项目非常实用

Go语言直接用它做了自己内存分配器。所以很多程序员是熟悉这个项目的,那么有好处,也有坏处。好处就是把这个项目理解扎实了,会很受面试官的认可。坏处就是面试官可能也比较熟悉项目,对项目会问得比较深,比较细。如果你对项目掌握得不扎实,那么就容易碰钉子

所以如果你准备要做这个项目,那么
一定要做好!做好了会让面试官刮目相看
做的不够熟练只会让面试官觉得你是水货,

那么此次面试,你就是失败的。

2.学习最顶尖的思想,争取成为最顶尖的人

Google是超级大厂,并且Google对C/C++语言的研究一直走在世界的
最前列,也就是说这个项目其实是世界上的C++顶尖高手写出来的!就像别人
说学Java必看的书或必做的项目一样,那么我认为高并发内存池就是C++程序员可以说
是必看的项目!

博主想做这个项目没有别的原因
只因为它是C++顶尖高手写出来的
我也有一颗成为顶尖高手的心,所以
我得去学习他们的思想,就这一个原因
就足够支撑我学习这个项目!!!

6.需要掌握的技能

这个项目会用到C/C++、数据结构(链表、哈希桶)、操作系统内存管理、单例模式、多线程、互斥锁等等方面的知识。难度的话,如果难度满级的项目是5星的话,这个项目应该是4星。

行文至此,本篇章就结束了,一起加油吧,朋友们,把这个项目啃下来。

相关文章:

  • [NKU]C++基础课(四)补充:继承
  • 项目管理的核心是什么?
  • XUnity.AutoTranslator-Gemini——调用Google的Gemini API, 实现Unity游戏中日文文本的自动翻译
  • 案例-22.配置文件-@ConfigurationProperties
  • 【探寻C++之旅】第五章:模板
  • 解决华硕主板的Boot界面无法设置M.2的系统启动盘问题
  • Kafka Connect 数据格式转换器
  • Python装饰器根本写法
  • leetcode_位运算 190.颠倒二进制位
  • 8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改
  • 第三章 组件(6)- 事件处理
  • 设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)
  • centos服务器巡检脚本
  • Windows逆向工程入门之字符串类型解析与拓展
  • C语言预处理学习笔记
  • Docker Desktop 入门教学
  • python组备赛笔记(基础篇)
  • 从零到一:构建现代 React 应用的完整指南
  • Netty入门详解
  • halcon机器视觉深度学习对象检测,物体检测
  • 日均新开三家“首店”,上海的“首发经济”密码是什么?
  • 国家数据发展研究院在京正式揭牌
  • 政企研合力,科学监测分析服务消费
  • 湖南省郴州市统战部部长黄峥嵘主动交代问题,接受审查调查
  • 外交部否认中美就关税问题进行磋商谈判
  • 新东方:2025财年前三季度净利增29%,第四财季海外业务将承压