分享

物理内存、页面文件、交换区和虚拟内存

 无风而动 2012-09-22
物理内存,顾名思义,就是实实在在存在的那个东西,插在你电脑主板上的内存条所提供的空间。

    页面文件,这个是硬盘上的一块空间,在Windows下表现为一个文件。这个页面文件存在的意义就是在物理内存被占用满以后,将物理内存中的东西移动到硬盘上的这个空间,腾出物理内存给需要的应用程序来使用。

    交换区,这个是物理内存和页面文件空间的总和,“交换”的含义,则是指在硬盘文件、CPU和其它IO之间进行数据的传递和暂存(这句话对于了解计算机运行基本流程的人来说应该可以理解)。

    虚拟内存,这个概念恐怕是目前为止最为含混不清的一个东西了,会有很多种不同的含义。在这里,我先说一下在一个程序猿眼中的虚拟内存是个啥。

    很显然,这个世界上的电脑配置是五花八门,可用的物理内存数量也是分为很多等级的。作为一个苦逼的程序猿,我们不可能在考虑程序逻辑的时候还要去 考虑客户的机器有多少内存可以用,也不可能去详细调查实际的物理内存地址是多少到多少,好在OS会为我们完成这些工作。每一个运行的进程,都会获得一个 4G的内存地址空间,这就是所谓的虚拟内存,这里面的所有地址都是虚拟的,和物理内存啥的并不直接挂钩。而在操作系统那头,这些虚拟地址所映射到的实际地 址,可以是物理内存地址,也可以是页面文件的地址。如果是物理内存小于这个虚拟地址的范围的话,映射的物理内存还可能是重复的物理内存地址片段,使用的时 候可以通过清空内存数据,将内存数据写入页面文件这样的方式进行物理内存的重新利用,以提高物理内存的利用效率。

    而不少人,尤其是对Windows刚有所了解的人,所理解的虚拟内存,往往是指页面文件。这也是微软的意见,他们在自己的操作系统中就是这么写的,见下图:



    而在Aida64,或者说是曾经的Everest中,虚拟内存是交换区 + 物理内存 = 物理内存 * 2 + 页面文件。老实说,我并没有理解这个的概念是什么。


    其实上述虚拟内存的说法都没有什么问题,都是约定俗成的说法,关键是要搞清楚什么时候的“虚拟内存”是指什么,概念不混淆就可以。

    顺便吐个槽,我发现Win7的内存调度很诡异,物理内存不是边占用边释放的,总是等到占用率很高(接近满)的时候,来个集中释放,也就是写入页面 文件。我的笔记本硬盘硬盘性能不咋样,给这么一搞整个就会卡死半天,而下载软件开时间长一点的话很容易就把物理内存占满。据说是这 Superfetch(拼错没?)的效果,关了以后内存占用率确实上升的慢了一点,不过占用率感觉还是偏高,看着真不爽。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多