内存管理
内存管理是指软件运行时对计算机内存资源的分配和使用的技术。
其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
一个执行中的程式,譬如网页浏览器在个人电脑或是图灵机(Turing machine)里面,为一个行程将资料转换于真实世界及电脑内存之间,然后将资料存于电脑内存内部(在计算机科学,一个程式是一群指令的集合,一个行程是电脑在执行中的程式)。
一个程式结构由以下两部分而成:“本文区段”,也就是指令存放,提供CPU使用及执行; “资料区段”,储存程式内部本身设定的资料,例如常数字串。
当一个程序执行,操作系统将程序的资料区段及本文区段映射到虚拟内存空间内部,然后在内存执行程序的指令(见冯诺依曼架构(von Neumann architecture)。
无论如何,当进程执行时就必须去储存暂时性的资料,或更重要的,它会呼叫一些函数(function)或是子程序(subroutine),并且储存当前函数的状态。
最好的数据结构方法,资料由堆栈(stack)的方式储存,当我们完成这个函数,资料会由堆栈的pop方式取出,堆栈将会在函数的生命周期内动态的成长,操作系统提供区分本文区段及资料区段,而堆栈区段则在一个行程的最顶端,这种方式称为段式结构(segments)或“分段”。
内存管理对于编写出高效率的Windows程序是非常重要的,这是因为Windows是多任务系统,它的内存管理和单任务的DOS相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;
但Windows却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows系统可能会对其它任务分配的内存进行移动,甚至删除。
因此,我们在Windows应用程序中使用内存时,要遵循Windows内存管理的一些约定,以尽量提高Windows内存的利用率。
本文作者:酒宴花窗
本文链接:https://www.cnblogs.com/garbslife/p/12264224.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步