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

内存映射文件/堆 栈

webgou17年前 (2010-02-26)编程开发131
[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
分享给朋友:

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

十分有趣的N多小网站

十分有趣的N多小网站 给大家参考下…

Android初体验一

今天,在windows下搭建Android开发环境,步聚比较简洁。昨晚在自已电脑上,由于ADSL网速原因,安装ADT时卡住了,今天在公司很快就搞定了:1.安装android sdk 2.下载安装eclipse ADT 3.调试其中的例子,运行AVD查看效果...…

Java Dom解析XML

˂1、XML文件persons.xml内容如下:<?xml version="1.0" encoding="UTF-8"?><persons>  <person><name>jak</name&g…

unity3d + PureMVC框架搭建

  0、流程:LoginView-SendNotification()---->LoginCommand--Execute()--->调用proxy中的函数操作模型数据--LoginProxy---->接收服务器返回-操作数据-返回通知视图控制器--LoginMediat…

宽带ADSL中的VPI/VCI是什么?

宽带ADSL中的VPI/VC …

Android类库常用类型解析

在Android类库中,各种包写成android.*的方式,重要包的描述如下所示:android.app :提供高层的程序模型、提供基本的运行环境android.content 包含各种的对设备上的数据进行访问和发布的类android.database :通过内容提供者浏览和操作数据库android…

发表评论

访客

看不清,换一张

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