内存池

UrSpecial20 天前
nginx·内存池
从零实现Nginx风格内存池本文将从为什么需要内存池讲起,重点探讨内存池的设计哲学,并详细拆解其实现方案,从而搭建起读者对内存池从理论到实践的完整认知模型。
君鼎22 天前
c++20·内存池
内存池完整实现——C++20版
不吃土豆的马铃薯1 个月前
开发语言·c++·vscode·c·内存池
5.SGI STL 二级空间配置器 _S_chunk_alloc核心函数解析上节我们学习了allocate和自由链表填充函数 _S_refill,这一节继续深挖底层核心函数 _S_chunk_alloc,它是二级空间配置器真正负责从内存池或是系统堆中划分内存块的核心接口。
不吃土豆的马铃薯1 个月前
c语言·开发语言·c++·dreamweaver·内存池
4.SGI STL 二级空间配置器 allocate 与_S_refill 源码解析本节我们继续深耕 SGI STL 二级空间配置器 核心源码,重点学习两大核心函数:allocate 内存分配函数 和 _S_refill 内存池填充函数。
June`1 个月前
c++·tcmalloc·内存池
高并发内存池如何实现目录定长内存池核心原理关键特点实现核心步骤代码实现类的成员变量说明Delete函数New函数向系统申请内存
YYYing.1 个月前
c++·性能优化·高并发·内存池·基数树
【C++项目之高并发内存池 (五)】一些小细节和性能优化及整体测试⭐️在这个怀疑的年代,我们依然需要信仰。个人主页 :YYYing.⭐️高并发内存池项目专栏:C++项目之高并发内存池
YYYing.1 个月前
c++·笔记·缓存·高并发·内存池
【C++项目之高并发内存池 (四)】三层缓存的空间回收流程详解⭐️在这个怀疑的年代,我们依然需要信仰。个人主页 :YYYing.⭐️高并发内存池项目专栏:C++项目之高并发内存池
YYYing.1 个月前
c++·笔记·哈希算法·高并发·c/c++·内存池
【C++项目之高并发内存池 (三)】万字解析CentralCache与PageCache的初步实现⭐️在这个怀疑的年代,我们依然需要信仰。个人主页 :YYYing.⭐️高并发内存池项目专栏:C++项目之高并发内存池
无小道1 个月前
tcmalloc·对比·内存池·ptmalloc
内存分配器概述&对比ptmalloc和tcmalloc关于内存分配器ptmalloc以及tcmalloc的详细讲解:内存分配器——彻底理解tcmalloc内存分配器——彻底理解ptmalloc
YYYing.2 个月前
项目·c/c++·内存池·池化技术
【C++项目之高并发内存池 (一)】项目介绍与定长内存池的构建⭐️在这个怀疑的年代,我们依然需要信仰。个人主页 :YYYing.⭐️高并发内存池项目专栏:C++项目之高并发内存池
洛水水2 个月前
linux·内存池
图解式讲解内存池:告别内存碎片与随机coredump想象一下,你的程序运行了很长时间(比如服务器进程),过程中不断 malloc 和 free:每次分配和释放的大小不一,释放后的空间又可能被下次不同大小的请求填上,大量不连续的空闲小块就产生了——这就是内存碎片。
洛水水2 个月前
网络·内存池
KVStore 内存池实战:从实现到应用,告别 malloc 焦虑在 KVStore 项目中,每次 SET/DEL/HASH 操作都会产生大量小对象分配。如果每次都直接调用 malloc(),轻则延迟抖动,重则内存碎片化导致系统变慢甚至 OOM。
卷卷的小趴菜学编程4 个月前
前端·后端·html·tcmalloc·内存池
项目篇----仿tcmalloc的内存池设计(内存回收)我们基本的框架已经搭建完了,但是有一个问题现在,就是假设现在的thread cache里面归还回来了大量的内存,导致_freelist的桶里面都挂的很长很满了,这样下去我们的系统早晚崩溃,所以我们还要设计一个函数来解决这个问题:整体思路不难,这里直接放代码了
卷卷的小趴菜学编程4 个月前
c++·缓存·单例模式·tcmalloc·内存池·span cache
项目篇----仿tcmalloc的内存池设计(page cache)我们先梳理一下,当我们要申请x byte内存时,会先在thread cache中进行申请,如果申请到了就返回,申请不到就去central cache中申请,在central cache中,不会说你要x byte就给你x byte,它会通过慢启动以及一系列方法多给你开辟一些回去,剩下的就存到central cache中,那问题来了,如果central cache中也没有内存了咋办呢?此时就要向page cache申请,那么我们先来了解一下page cache的结构~
卷卷的小趴菜学编程4 个月前
c++·tcmalloc·内存池·central cache
项目篇----仿tcmalloc的内存池设计(central cache篇)central cache也是一个哈希桶结构,他的哈希桶的映射关系跟thread cache是一样的。不同的是他的每个哈希桶位置挂是SpanList链表结构,不过每个映射桶下面的span中的大内存块被按映射关系切成了一个个小内存块对象挂在span的自由链表中。
卷卷的小趴菜学编程5 个月前
c++·算法·项目·内存池·c++应用
项目篇-----内存池(一)温馨提示:本文章略显恋爱脑,仅用于举例说明!!!切勿模仿!!!我们知道,我们程序中的变量函数等等都是占用内存的,那么如果每次在使用的时候都去向CPU内存去申请就很麻烦,为此,我们可以造一个“池子”,先提前在里面申请足够大的内存,这样当我们需要内存时,就去这个池子里面申请就好了,如果不明白可以看下面这个例子,
七夜zippoe5 个月前
开发语言·python·gc·分代回收·内存池
Python内存管理深潜:从引用计数到GC机制的全面优化实战目录摘要1 引言:为什么Python内存管理值得深入探究1.1 Python内存管理的独特挑战1.2 Python内存管理架构全景
无双@7 个月前
c++·线程·秋招·项目·高并发内存池·c++项目·内存池
高并发内存池9 —— Page Cache 回收\qquad 在上一文的Central Cache介绍中,当 Central Cache 里某一个哈希桶里的span链表里的_useCount为0了,此时就说明要将span还回去给 Page Cache。
进击的圆儿8 个月前
开发语言·c++·实战·项目·内存池
高并发内存池项目开发记录 - 02昨天把Common.h的基础数据结构写完了,今天要开始实现内存池的第一层:ThreadCache。一开始我还不太理解为什么需要三层架构,后来想明白了:ThreadCache就是给每个线程分配自己的"小仓库",这样大部分时候线程从自己仓库拿东西,不用跟别人抢,自然就快了。
利刃大大9 个月前
c++·缓存·项目·内存池
【高并发内存池】五、页缓存的设计首先页缓存还是一个哈希桶的结构,但是和前两者不同的是,页缓存的哈希桶中存放的是一个或者多个 span 合并的大 span 对象,之前中心缓存的哈希桶虽然挂的也是 span 对象,但那些 span 对象都是一个独立的个体,而 页缓存则是将这些 span 对象根据不同的页大小进行合并然后映射到对应的哈希桶中,并且页缓存中的 span 对象就不切分为小内存块了,而是交给中心缓存自己去切分!