当前位置:首页 > 编程开发

内存映射文件/堆 栈

webgou17年前 (2010-02-26)编程开发149
[B]内存映射文件[/B] 对文件进行操作几乎是所有应用程序都必须进行的,并且这常常是人们争论的一个问题。应用程序究竟是应该打开文件,读取文件并关闭文件,还是打开文件,然后使用一种缓冲算法,从文件的各个不同部分进行读取和写入呢?M i c r o s o f t提供了一种两全其美的方法,那就是内存映射文件。 与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。 内存映射文件可以用于3个不同的目的: * 系统使用内存映射文件,以便加载和执行 . e x e和D L L文件。这可以大大节省页文件空间和应用程序启动运行所需的时间。 * 可以使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行I / O操作,并且可以不必对文件内容进行缓存。 * 可以使用内存映射文件,使同一台计算机上运行的多个进程能够相互之间共享数据。 Wi n d o w s确实提供了其他一些方法,以便在进程之间进行数据通信,但是这些方法都是使用内存映射文件来实现的,这使得内存映射文件成为单个计算机上的多个进程互相进行通信的最有效的方法。 [B]堆 栈[/B] 对内存进行操作的第三个机制是使用堆栈。堆栈可以用来分配许多较小的数据块。堆栈的优点是,可以不考虑分配粒度和页面边界之类的问题,集中精力处理手头的任务。堆栈的缺点是,分配和释放内存块的速度比其他机制要慢,并且无法直接控制物理存储器的提交和回收。 从内部来讲,堆栈是保留的地址空间的一个区域。开始时,保留区域中的大多数页面没有被提交物理存储器。当从堆栈中进行越来越多的内存分配时,堆栈管理器将把更多的物理存储器提交给堆栈。物理存储器总是从系统的页文件中分配的,当释放堆栈中的内存块时,堆栈管理器将收回这些物理存储器。

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=133

标签: winowsos
分享给朋友:

“内存映射文件/堆 栈” 的相关文章

打印出:2,3,5,9,17,33,65

打印出:2,3,5,9,17,33,65…

DSDT是什么

     什么是DSDT呢,它是ACPI其中一个表。什么是ACPI呢,它是BIOS的一个高级功能模块。下面咱稍微详细的从最大的开始说: 一、首先,BIOS(略) 二、ACPI是Hewlett-Packard, Intel, Microsoft, Phoenix, 和T…

中国iOS开发者出走海外

7月6日,知名移动数据监测机构App Annie在移动互联网创新大会上公布的这组数据揭开了中国移动互联网产业的现实与无奈。 整个iOS市场中,中国区APP下载量排名全球第二,但收入只排到全球第八,中国平均每下载量收入仅有0.03美元,是美国用户0.28美元的十分之一,甚至只有越南的一半。 在iO…

Shader 进度条/技能CD特效

用了几天弄明白了这个简单的进度条,不容易。主要是利用了三角函数反正切函数特性,在夹角范围内的值透明度设为0,不在范围内值设成1.对于shader 编辑器,可以用forge 以及amplify.贴上测试代码:// Made with Amplify Shader Editor// Available…

unity打包批处理备份

suball.batcall build.batcd..call rename.bat-----rename.batdel MainActivity-release-unsigned.apk copy .\app\bin\MainActivity-release-unsigned.apk…

线程同步

效率      you should try to use nonshared data first and then use volatile reads, volatile writes, interlocked APIs, SRWL…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。