当前位置: 首页 > news >正文

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 年发布)引入的,它是专门为嵌入式小型机器小内存的场景设计的,所以实现上很精简,能在小型机器上提供很不错的性能。

http://www.cnnetsun.cn/news/3058814.html

相关文章:

  • ESP32 入门教程(一):使用 GPIO 控制 LED 亮灭
  • 五大平台联动:2026数字营销新法则
  • 比 iTerm2 更适合 Claude Code/Codex 的终端,我换成 Ghostty 了
  • 联想拯救者BIOS隐藏功能解锁:5分钟释放你的笔记本全部性能
  • 单台Nginx部署多个前端项目:IP路径区分 \+ 域名区分完整实战
  • 计算机毕业设计之基于深度学习的老年人的心脏健康系统
  • Java毕设项目:基于 SpringBoot 的救灾物资库存预警与补给系统设计 灾情救援物资数字化管控与分配系统设计与开发 (源码+文档,讲解、调试运行,定制等)
  • 在江西体验正规峡谷漂流,真实感受究竟怎么样?
  • 全网独一份!华为、华三、中兴、锐捷、迈普、烽火六厂商远程登录配置速查手册
  • 环境变量配置法:通过 HTTP_PROXY 让OpenClaw走代理的最佳实践
  • Netskope Universal ZTNA 以一致的、基于身份和风险的访问控制方式,取代 NAC 和 VDI,适用于 IT、OT 和 IoT 等各种环境。
  • Web安全入门:从MD5前端加密案例解析JS逆向与密码传输风险
  • 083题库
  • Spring AI 1.1.5 正式发布,又一个大模型被移除了。。
  • Modbus详解
  • 招聘智能体技术解析:原生 AI 招聘助手的轻量化架构与风控设计
  • Ambari 大数据环境搭建利器——从入门到模拟实战
  • Anthropic Zero-Layer:LLM应用中的隐式协议层解析
  • RAG全流程拆解——从“只会聊天”到“能查资料”的质变
  • 短视频GEO定位迭代优化,门店信息标准化提升同城推荐量
  • 终极性能优化:三步让RimWorld游戏体验丝滑如新
  • 5分钟集成企业工商信息查询API:基于ApiZero平台的实战指南
  • 深度学习框架原理
  • P.2简易计算器
  • Windows桌面应用自动化测试:Appium与WinAppDriver环境搭建与实战指南
  • 第十章-OntologyOps
  • 如何快速安装和使用AML启动器:XCOM 2模组管理完整指南
  • 告别 std::tie 与胶水代码:C++17 结构化绑定与生命周期延长的微观艺术
  • stm32-hal库
  • 英雄联盟Akari助手:免费开源的游戏效率神器完整指南