
内存管理
csshuke
这个作者很懒,什么都没留下…
展开
-
内存管理 一
今天突发奇想地想学习下内存管理(其实是报的腾讯终端开发,怕面试被问到如何实现内存管理模块)。于是找找资料,写了段代码,可以实现基于最佳适应法和循环首次适应法的内存分配。 大家都知道,我们malloc的时候操作系统维护着一张双链表记录堆里面的空闲内存块情况,每个节点对应一块内存。 最佳适应法:分配内存(大小为size)的时候,从表头开始搜索,找那块比size大的最小空闲内转载 2015-03-21 21:24:41 · 462 阅读 · 0 评论 -
内存管理 二
发现两篇内存池的博文,博文地址如下,写的很好,能避免内存碎片和内存泄露问题,比我这个玩具代码要好很多,大家可以看看: http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.html http://blog.youkuaiyun.com/060/article/details/1326025 在我们做转载 2015-03-21 21:25:21 · 458 阅读 · 0 评论 -
内存管理 三
假设系统的可利用内存空间容量为2m个字(地址从0到2m-1),则在开始运行时,整个内存区是一个大小为2m的空闲块,在运行了一段时间之后,被分隔成若干占用块和空闲块。为了在分配时查找方便起见,我们将所有大小相同的空闲块建于一张子表中。每个子表是一个双重链表,这样的链表可能有m+1个,将这m+1个表头指针用向量结构组织成一个表,这就是伙伴系统中的可利用空间表,如图所示:转载 2015-03-21 21:25:54 · 434 阅读 · 0 评论 -
函数调用过程探究
引言 如何定义函数、调用函数,是每个程序员学习编程的入门课。调用函数(caller)向被调函数(callee)传入参数,被调函数返回结果,看似简单的过程,其实CPU和系统内核在背后做了很多工作。下面我们通过反汇编工具,来看函数调用的底层实现。 基础知识 我们先来看几个概念,这有助于理解后面反汇编的输出结果。 栈(stack) 栈,相信大家都十分熟悉,push转载 2015-03-21 21:53:44 · 360 阅读 · 0 评论 -
DRAM,SRAM,SDRAM的关系与区别
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。 按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。 外存通常是磁性介质或光盘等,能长期保存信转载 2015-09-09 16:36:15 · 796 阅读 · 0 评论 -
内存泄露 内存溢出 内存碎片
******************************************************************************** 内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。 内存泄漏形象的比喻是“操作系统可提转载 2015-09-10 16:15:20 · 1290 阅读 · 0 评论 -
深入了解Windows句柄到底是什么
转载请注明来自http://blog.youkuaiyun.com/wenzhou1219 目录(?)[+] 总是有新入门的Windows程序员问我Windows的句柄到底是什么,我说你把它看做一种类似指针的标识就行了,但是显然这一答案不能让他们满意,然后我说去问问度娘吧,他们说不行网上的说法太多还难以理解。今天比较闲,我上网查了查,光是百度百科词条“句柄”中就转载 2016-10-16 08:01:11 · 450 阅读 · 0 评论