Linux 最常见的内核内存分配器叫做 SLAB (或 SLUB),它是由 Christoph Lameter 开发的。SLAB 是一种基于对象缓存的内存分配器,它将内存按照对象按需动态分配。SLAB 的设计思想是通过预先分配一些对象并将它们存储在缓存中,当需要分配内存时,直接从缓存中获取对象即可,避免了频繁的内存分配和释放操作,提高了内存分配的效率。

与 dlmalloc 的不同之处在于,dlmalloc 是一种基于堆的内存分配器,它直接在堆上分配内存,并且使用了多种策略来管理堆空间,如分离空闲链表、合并相邻空闲块等。而 SLAB 则是基于对象缓存的,它不直接在堆上分配内存,而是提前分配好一些对象并存储在缓存中,通过对象缓存来管理内存。此外,SLAB 还支持内存回收、高速缓存等功能,使得内存的管理更加高效。

Linux 内核内存分配器 SLAB: 设计原理与 dlmalloc 对比

原文地址: https://www.cveoy.top/t/topic/nnkK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录