Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1481479
  • 博文数量: 228
  • 博客积分: 1698
  • 博客等级: 上尉
  • 技术积分: 3241
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-24 21:49
个人简介

Linux

文章分类

全部博文(228)

文章存档

2017年(1)

2016年(43)

2015年(102)

2014年(44)

2013年(5)

2012年(30)

2011年(3)

发布时间:2015-01-17 21:58:47

Kernel提供了kmem_cache_create函数用于创建Cache,下面我们直接从API入手。函数有点长,逐行分析一下。点击(此处)折叠或打开/** * kmem_cache_create - Create a cache. * @name: A string which is used in /proc/slabinfo to identify this cache.........【阅读全文】

阅读(2663) | 评论(0) | 转发(2)

发布时间:2015-01-17 17:36:50

start_kernel的在mm_init->kmem_cache_init之后,还调用了kmem_cache_init_late函数。该函数接着kmem_cache_init的处理进度,继续展开,如下:点击(此处)折叠或打开void __init kmem_cache_init_late(void){    struct kmem_cache *cachep.........【阅读全文】

阅读(1838) | 评论(0) | 转发(1)

发布时间:2015-01-16 18:10:27

初始化的调用过程:start_kernel()->mm_init()->kmem_cache_init(),下面分析一下具体代码。点击(此处)折叠或打开/* * Initialisation. Called after the page allocator have been initialised and * before smp_init(). */.........【阅读全文】

阅读(3550) | 评论(0) | 转发(2)

发布时间:2015-01-14 20:27:53

Linux采用了slab来管理小块内存的分配与释放,Slab的提出基于以下两个考虑:1. 内核函数经常倾向于反复请求相同的数据类型2. 不同的结构使用不同的分配方法可以提高效率3. 伙伴系统的频繁申请/释放影响效率,将释放内存放入缓冲区,直至超过阀值再归还给伙伴系统4. 可以缓解内存碎片的产生,.........【阅读全文】

阅读(2039) | 评论(0) | 转发(2)

发布时间:2014-12-02 16:11:49

slab分配器是Linux内存管理中非常重要和复杂的一部分,其工作是针对一些经常分配并释放的对象,如进程描述符等,这些对象的大小一般比较小,如果直接采用伙伴系统来进行分配和释放,不仅会造成大量的内碎片,而且处理速度也太慢。而slab分配器是基于对象进行管理的,相同类型的对象归为一类(如进程描述符就是一类),每当要.........【阅读全文】

阅读(1453) | 评论(0) | 转发(1)
给主人留下些什么吧!~~

hanwei_10492013-04-23 16:33

google-perftools export

回复  |  举报
留言热议
请登录后留言。

登录 注册