TCMALLOC是什么 高并发内存中间件

高并发内存中间件

高并发内存中间件是一个在多线程并发条件下进行内存申请的程序。是谷歌公司TCMAlloc的学习致敬,再简化版本模拟实现。

FreeList的成员list_是一个指向首个空闲内存块的指针,它也是链表的head。链表所有的操作均在SSL_*系列函数中实现。SSL_*系列接口如下:

void *SLL_Next(void *t);//取t的下一块空闲内存。t也是一个空闲内存块。
void SLL_SetNext(void *t, void *n);//设置空闲内存块t的下一个空闲内存快n。
void SLL_Push(void **list, void *element);//在链表最前面插入一个空闲内存块element。
void *SLL_Pop(void **list);//取出链表中第一个空闲内存块。
void SLL_PopRange(void **head, int N, void **start, void **end);//取出链表中前面N个空闲内存块。
void SLL_PushRange(void **head, void *start, void *end);//在链表前面插入从start到end一个链表。
size_t SLL_Size(void *head);//计算链表的长度。

 TCMalloc源码阅读(四)--ThreadCache分析之空闲内存链表_aaronjzhang_的博客-CSDN博客前面几篇博文中已经描述了TCMalloc将内存从小到大划分成很多个固定大小的内存块,将每种大小的空闲内存块使用链表管理起来。本文就来分析下ThreadCache中空闲链表的实现。TreadCache::FreeList的代码如下: class FreeList { private: void* list_; // Linked list of nodeshttps://blog.csdn.net/aaronjzhang/article/details/8832431

猜你喜欢

转载自blog.csdn.net/u013288190/article/details/127481252