tcmalloc

2024/4/13 1:10:56

windows下源码编译和使用TCMalloc

windows下源码编译和使用TCMalloc 环境: OS: windows 10 编译器:vs2019 cmake: 3.22.1 tcmalloc: gperftools-2.10前言 TCMalloc是Google开发的专用于多线程系统设计的内存分配器。如mysql、Nginx、Redis 高并发下的性能和内存优化等。 在一台2.8GHz…

【lesson2】定长内存池的实现

文章目录 介绍定长内存池的设计定长内存池的实现需要成员变量需要的成员函数定长内存池结构定长内存池Delete(释放空间)的实现定长内存池New(申请空间)的实现 定长内存池的实现完整版 介绍 作为程序员(C/C)我们知道申请内存使用的…

c/c++中的内存分配器

近日为新员工准备技术讲演稿ppt,搜索了一下c/c中的内存分配器。看到下面这个博客说的涵盖的点较为多,转帖过来。 本博客转载自http://blog.csdn.net/ybt631/article/details/6863229 对原作者表示感谢! 对于C开发而言,内存分配优化…

高并发内存池【项目】

文章目录 涉及知识项目介绍关于 malloc()TCMalloc 介绍内部碎片和外部碎片内部碎片外部碎片内存对齐 TCMalloc 的基本结构基本概念ThreadCacheCentralCachePageHeap 设计定长内存池内存池介绍实现测试 ThreadCache框架设计自由链表字节范围与哈希桶下标的映射规则设计 ThreadCa…

【lesson5】高并发内存池Central Cache层申请内存的实现

文章目录 Central Cache层的结构申请内存的流程释放内存的流程Span对象的结构SpanList的实现SpanList需要的成员变量SpanList需要的成员函数SpanList()的实现Insert()的实现Erase() SpanList的完整实现代码 Central Cache对象的结…

【tcmalloc】(二)整体设计和thread cache(申请)

一.高并发内存池整体框架设计 内存池需要考虑以下几方面的问题。 1. 性能问题。 2. 多线程环境下,锁竞争问题。 3. 内存碎片问题(外碎片(内存不连续无法使用),内碎片(因为对齐规则的浪费)&…

【lesson4】高并发内存池ThreadCache(线程缓存)层实现

文章目录 ThreadCache层的结构申请内存逻辑释放内存逻辑自由链表的实现自由链表的成员变量自由链表的成员函数自由链表的完整实现 ThreadCache申请内存过程的实现ThreadCache需要的成员变量ThreadCache需要的成员函数ThreadCache.h文件代码Allocate的实现Deallocate的实现 封装…

TCmalloc (google开源项目核心部分模拟实现)

1什么是内存池 1.1池化技术 所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己管理,以备不时之需。之所以要申请过 量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好了,这样使用时就…

go 内存管理-从TCMalloc到go内存管理

TCMalloc 概念 页(Page) : 页是由连续的物理地址所组成的固定大小的内存块Span : 它是由一系列连续的页所组成的固定大小的区域ThreadCache : 每个线程的cache,每个cache包含多个链表,每个链表的内存块大小相同&…