news 2026/7/12 22:21:28

slab 对象池的三种实现方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
slab 对象池的三种实现方式

slab 对象池的三种实现:slab,slub,slob。

slab对象池

描述

slab

由于 slab 的实现非常复杂,slab 中拥有多种存储对象的队列,队列管理开销比较大,slab 元数据比较臃肿,对 NUMA 架构的支持臃肿繁杂(slab 引入时内核还没支持 NUMA),这样导致 slab 内部为了维护这些自身元数据管理结构就得花费大量的内存空间,这在配置有超大容量内存的服务器上,内存的浪费是非常可观的。

slub

slub 简化了 slab 一些复杂的设计,同时保留了 slab 的基本思想,摒弃了 slab 众多管理队列的概念,并针对多处理器,NUMA 架构进行优化,放弃了效果不太明显的 slab 着色机制。slub 与 slab 相比,提高了性能,吞吐量,并降低了内存的浪费。成为现在内核中常用的 slab 实现。

slob

专门为嵌入式小型机器小内存的场景设计的,所以实现上很精简,能在小型机器上提供很不错的性能。

其中 slab 的实现,最早是由 Sun 公司的 Jeff Bonwick 大神在 Solaris 2.4 系统中设计并实现的,由于 Jeff Bonwick 大神公开了 slab 的实现方法,因此被 Linux 所借鉴并于 1996 年在 Linux 2.0 版本中引入了 slab,用于 Linux 内核早期的小内存分配场景。

由于 slab 的实现非常复杂,slab 中拥有多种存储对象的队列,队列管理开销比较大,slab 元数据比较臃肿,对 NUMA 架构的支持臃肿繁杂(slab 引入时内核还没支持 NUMA),这样导致 slab 内部为了维护这些自身元数据管理结构就得花费大量的内存空间,这在配置有超大容量内存的服务器上,内存的浪费是非常可观的。

针对以上 slab 的不足,内核大神 Christoph Lameter 在 2.6.22 版本(2007 年发布)中引入了新的 slub 实现。slub 简化了 slab 一些复杂的设计,同时保留了 slab 的基本思想,摒弃了 slab 众多管理队列的概念,并针对多处理器,NUMA 架构进行优化,放弃了效果不太明显的 slab 着色机制。slub 与 slab 相比,提高了性能,吞吐量,并降低了内存的浪费。成为现在内核中常用的 slab 实现。

而 slob 的实现是在内核 2.6.16 版本(2006 年发布)引入的,它是专门为嵌入式小型机器小内存的场景设计的,所以实现上很精简,能在小型机器上提供很不错的性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 9:32:41

ESP32 入门教程(一):使用 GPIO 控制 LED 亮灭

一、前言 点亮 LED 是单片机开发的Hello World,也是入门硬件交互的第一课。通过本实验,你能搞懂电压、电流、回路三大基础电路概念,掌握 GPIO 输出控制逻辑,建立软件代码控制物理硬件的思维,为后续电机、传感器、物联…

作者头像 李华
网站建设 2026/7/12 22:20:51

五大平台联动:2026数字营销新法则

2026年的数字营销环境中,单一平台投放的边际效益正在递减。真正的增量空间,来自百度、抖音、腾讯、快手、小红书五大平台的数据打通与策略协同。基于全媒体广告数字化营销平台的实战经验,分享三个关键方法论:1. 全域流量“漏斗”思…

作者头像 李华
网站建设 2026/7/12 22:14:46

比 iTerm2 更适合 Claude Code/Codex 的终端,我换成 Ghostty 了

你好,我是小 G。我把终端从 iTerm2 换到 Ghostty 已经有三个月了。 整体体验还不错,这篇文章来分享一下。 Ghostty 不是 Claude Code 的官方指定终端,但确实被 Claude Code 带火了一把。Claude Code 创始人 Boris Cherny 在聊团队使用习惯时…

作者头像 李华
网站建设 2026/7/5 17:25:11

联想拯救者BIOS隐藏功能解锁:5分钟释放你的笔记本全部性能

联想拯救者BIOS隐藏功能解锁:5分钟释放你的笔记本全部性能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/7/5 17:25:10

单台Nginx部署多个前端项目:IP路径区分 \+ 域名区分完整实战

在日常开发、测试、内网生产环境中,我们经常遇到一个刚需场景:只有一台Nginx服务器,需要同时部署多个独立的Vue/React前端项目。 很多新手会在这里产生困惑:服务器只有一个公网/内网IP,没有多个域名,怎么区…

作者头像 李华
网站建设 2026/7/10 4:18:06

计算机毕业设计之基于深度学习的老年人的心脏健康系统

基于深度学习的老年人心脏健康系统是一种利用深度学习技术对老年人的心脏健康进行监测和管理的方法。随着人口老龄化加剧,老年人的心脏健康问题日益突出,因此,开发一种有效的系统来监测和管理老年人的心脏健康至关重要。本研究首先对相关技术…

作者头像 李华