RK3399平台开发系列讲解(内存篇)18.5、为什么需要Slab

举报
内核笔记 发表于 2021/06/09 00:08:04 2021/06/09
【摘要】 为什么需要Slab 平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 为什么需要Slab 内存碎片问题 数据缓存 Slab的优点 内存碎片问题 首先内核会频繁的分配和释放内存,由于每次分配和释放的数据结构不同,所以不可避免的产生内存...

为什么需要Slab

在这里插入图片描述

平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

内存碎片问题

首先内核会频繁的分配和释放内存,由于每次分配和释放的数据结构不同,所以不可避免的产生内存碎片,也就是内存中存在很多无法使用的小内存段,这时候如果去申请一段比较大的连续内存,即使系统显示可用内存够用也会导致内存分配失败。

数据缓存

为了提高模块的性能,很多程序员会新建很多空闲链表,也就是说提前在系统中建好特定数据结构的链表,当需要使用内存的时候直接去填充空闲链表即可,直接填充数据要比申请内存、分配内存、填充内存性能要好的多。但是这样使用内存会带来一个问题:Linux内核有很多模块,如果每个模块、驱动为了提高性能都去新建一个空闲链表,这时候系统内存很快就会耗尽。另外,这些链表并不是全局的,系统想要释放内存的时候

文章来源: xuesong.blog.csdn.net,作者:内核笔记,版权归原作者所有,如需转载,请联系作者。

原文链接:xuesong.blog.csdn.net/article/details/116407358

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。