内存管理
文章平均质量分 89
内存管理
Amazing9
这个作者很懒,什么都没留下…
展开
-
GLIBC(2.29)内存管理
1. GLIBC tcache机制 GLIBC自从2.26版本开始,增加了tcache(thread local caching)机制,旨在提高GLIBC内存管理性能。tcache机制利用了线程私有数据结构,以达到无锁状态下快速内存管理。tcache机制在编译时通过USE_TCACHE进行控制,默认是打开的。 在GLIBC中,将会为每个线程均维持一个tcache结构,...原创 2019-04-02 19:55:05 · 1894 阅读 · 0 评论 -
GLIBC内存池管理—分箱管理
1. GLIBC内存管理核心结构1.1. malloc_chunkstruct malloc_chunk { INTERNAL_SIZE_T mchunk_prev_size; /* Size of previous chunk (if free). */ INTERNAL_SIZE_T mchunk_size; /* Size in bytes...原创 2019-04-04 10:22:38 · 1168 阅读 · 0 评论 -
GLIBC内存管理源码分析
1. glibc公共接口#define SIZE_SZ sizeof(size_t) //32位机下位4个字节,64位机下位8个字节#define MALLOC_ALIGNMENT 16 //不管是32位还是64位,均为16#define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1)#define MIN_CHUNK_SIZE (offsetof...原创 2019-05-12 10:14:52 · 1590 阅读 · 0 评论 -
glibc内存管理机制及内存碎片
1. glibc(即C库)内存管理框架2.内存碎片2.1.开启glibc tcache后的内存碎片C库在管理内存时,都是将其根据用户数据分配为相邻的块,在进行malloc时也是从满足用户数据大小的相邻块中抽出一块,然后返回给用户使用。在free时,它将会用当前free的块去寻找与其相邻的块,如果在已经free的序列中(fastbin、small bin、large bin...原创 2019-09-08 14:10:58 · 2759 阅读 · 3 评论