内存管理
最近研究内存管理,想把各种内存分配算法、内存池、垃圾回收都研究研究,供大家借鉴
zjutest
学校阶段开始专注算法图像处理linux内核与驱动目前专注于广告计算hadoopstorm等zju-microsoft-yahoo
展开
-
初窥内存管理(三)伙伴算法
假设系统的可利用内存空间容量为2m个字(地址从0到2m-1),则在开始运行时,整个内存区是一个大小为2m的空闲块,在运行了一段时间之后,被分隔成若干占用块和空闲块。为了在分配时查找方便起见,我们将所有大小相同的空闲块建于一张子表中。每个子表是一个双重链表,这样的链表可能有m+1个,将这m+1个表头指针用向量结构组织成一个表,这就是伙伴系统中的可利用空间表,如图所示:分配算法原创 2012-04-10 01:38:46 · 17092 阅读 · 10 评论 -
初窥内存管理(二)
发现两篇内存池的博文,博文地址如下,写的很好,能避免内存碎片和内存泄露问题,比我这个玩具代码要好很多,大家可以看看:http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.htmlhttp://blog.csdn.net/060/article/details/1326025 在我们做项目的时候,经常原创 2012-04-09 11:36:04 · 7563 阅读 · 5 评论 -
初窥内存管理(一)
今天突发奇想地想学习下内存管理(其实是报的腾讯终端开发,怕面试被问到如何实现内存管理模块)。于是找找资料,写了段代码,可以实现基于最佳适应法和循环首次适应法的内存分配。 大家都知道,我们malloc的时候操作系统维护着一张双链表记录堆里面的空闲内存块情况,每个节点对应一块内存。 最佳适应法:分配内存(大小为size)的时候,从表头开始搜索,找那块比size大的最小空闲内存块,进原创 2012-04-09 01:20:59 · 8777 阅读 · 7 评论