RK3399平台开发系列讲解(内存篇)18.5、为什么需要Slab
【摘要】 为什么需要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)