Linux最常见的内核内存的内存分配器叫什么名字是如何设计的与dlmalloc有何异同
Linux最常见的内核内存分配器叫做SLAB(或SLUB),它是由Christoph Lameter开发的。SLAB是一种基于对象缓存的内存分配器,它将内存按照对象按需动态分配。SLAB的设计思想是通过预先分配一些对象并将它们存储在缓存中,当需要分配内存时,直接从缓存中获取对象即可,避免了频繁的内存分配和释放操作,提高了内存分配的效率。
与dlmalloc的不同之处在于,dlmalloc是一种基于堆的内存分配器,它直接在堆上分配内存,并且使用了多种策略来管理堆空间,如分离空闲链表、合并相邻空闲块等。而SLAB则是基于对象缓存的,它不直接在堆上分配内存,而是提前分配好一些对象并存储在缓存中,通过对象缓存来管理内存。此外,SLAB还支持内存回收、高速缓存等功能,使得内存的管理更加高效。
原文地址: https://www.cveoy.top/t/topic/b3dO 著作权归作者所有。请勿转载和采集!