奇怪!!大神给看看,一根4G内存任务管理器里显示物理内存龙吴路2418弄

3565人阅读
Windows相关(19)
虚拟内存(Virtual Memory)是Windows管理所有可用内存的方式。对于32位Windows系统,每个进程所用到的虚拟内存地址从0到2^32-1,总容量4GB,其中2GB是与操作系统以及其他所有进程所共享,另外2GB分派给进程独占(这就是常说的32位Windows中一个进程最多能用2G内存的由来)。4GB虚拟地址空间(Virtual Address Space,VAS)中,2GB的进程独占VAS是进程隔离的,换句话说,每个进程都可以从RAM或者硬盘上映射到属于自己的2GB VAS。所以虽然32位Windows每个进程最多只能获得4GB可用虚拟内存,但是所有进程总和可以使用总量超过4GB的虚拟内存。可惜XP只支持4GB RAM,也就是说超出部分一定得靠页面文件补足;而比如2003企业版通过PAE支持32GB RAM,可以减少页面文件的用量。(但单个进程最多仍然只有4GB虚拟内存地址空间,而不是32GB)所以,一个简单的计算示例:三个进程最多能用掉多少VAS?2GB(共享)+2GB(独占)&3=8GB这4GB的虚拟地址空间,按照4KB的大小进行分页(page),然后以页为单位映射到实际存储单元中,包括:&物理内存(RAM)&页面文件(Page File,在Win9x中称为交换文件Swap File,即win386.swp)&其他文件自身(比如一些长时间未活动的进程的exe文件自身)可见,通常人们所说的虚拟内存实际上只是指其中的页面/交换文件而已,这是对虚拟内存的一个错误的理解。虚拟内存&页面文件RAM中除了保存最近读写的文件缓存(File Cache,相当于Win9x中的Vcache)主要用来存储正在使用的程序代码和数据,当RAM资源紧张,或者有程序码或数据长时间未使用时,XP通常会将非活跃程序码所在的地址页映射回程序文件(exe、dll等),将数据所在的地址页映射到页面文件(pagefile.sys)中并拷贝数据,然后将它们本来占用的RAM空间释放。这个过程称为页出(Page Out)。当系统读取某个虚拟内存地址,而该地址所在的页不在RAM中时,将产生一个页面错误(Page Fault)中断,告诉系统从页面文件或者程序文件中取回包含该地址的虚拟内存页,即将内容拷回到RAM并建立新的虚拟地址映射,并将页面文件中对应部分标记为未使用,这个过程就是页入(Page In)。页入成功的话就是一个Valid Page Fault,否则就是Invalid Page Fault。前者非常普遍,(可以在任务管理器的进程页监视到)而后者是由程序或硬件错误引起,如果发生在进程上会导致非法操作,如果是系统自身则很可能蓝屏。内存用量可以在任务管理器的性能页中看到。其中物理内存的总量、可用数等是指安装的RAM容量和剩余RAM容量,而内存使用或者提交更改的总量和限制是指虚拟内存的Commit Limit和Committed Bytes,可以理解成系统可以使用的虚拟内存总量和当前使用量,其中总量是由RAM大小+页面文件大小决定的。而在任务管理器的进程页中,&内存使用&和&虚拟内存大小&造成的误解很多,而实际上,这两个值是对应性能监视器中该进程的Working Set和Private Bytes,Working Set是指一个进程的4GB虚拟地址空间中被映射到RAM中的部分的大小,通常是该进程的虚拟内存中的活跃部分。表面看来这个表述和&进程占用的RAM大小&没有太大区别,但至少有两种情况导致了例外的发生:第一种是这部分虚拟内存如果是属于2G的系统共享虚拟内存,那么它映射到的RAM地址可能和其他进程有重复,计算多个进程占用RAM总和就不正确,使得所有进程的Working Set之和比实际占用RAM要大。第二种是一个进程中可能有同一段RAM内容的多个引用,比如一个文件被loop多次,此时虚拟空间中会有多段地址被映射到同一段RAM上,从而造成该进程的Working Set比实际占用RAM要大。Private Bytes是一个进程的2GB独占虚拟地址空间中用到的部分的大小,无论这部分是在RAM中还是在页面文件中,甚至是在exe、dll等文件中。所以,任务管理器进程页中的虚拟内存绝对不反映pagefile.sys的用量。所以,任务管理器无论是进程页还是性能页都不能直接反映pagefile的使用情况,诸如&关掉pagefile还能看到虚拟内存&之类的疑问,应该很清楚了。下面是一个简单图示,两个进程,各自拥有2G独占VAS,共同拥有2G共享VAS,W代表映射到RAM中的部分(Working Set),P代表页出的部分。&& && 0 &&&&&&&2GB独占内存&&&&&& 2G &&&2GB共享内存&&& 4G进程1 |--PPPP---------------WW-----PPPP--------|&& && && //// && && && &&& || && ////&& && && &&& //// && && && || && ////&& && && && //// && && && || && &&& |||| &&& |--PPPPPPPPPPPP--WWWWWWWW--|&& && &&& exe2 exe1 dll&& RAMemory pagefile.sys ||||||||||||&& ||||||||&& && &&& |||| && /// ///&& / &&& || | &&& 共享内核/dll等 共享RAM空间进程2 |-PPPP------PPP---WW--WW------PP----P----|然后,任务管理器的进程页中的&内存&就是上图中的W,所以所有进程的内存项加起来肯定比实际用的RAM大,因为有共享部分此外还有重复引用,比如上图中进程2独占内存中第二和第三个W指向同一段RAM空间。而任务管理器进程页中的&虚拟内存&就是上图中右半部分,&独占VAS&。可见pagefile只是其中的一部分,而RAM,只要用于独占VAS,一样计入了该处&虚拟内存&。最后,实际的页面文件用量(pagefile.sys中实际使用部分),可以在性能监视中看到,即Paging File下的% Usage和% Usage Peak配合当前pagefile.sys的大小就可以计算出字节数,这个值可以做为设定页面文件最小值的一个参考,而不是用任务管理器进程页的所有进程的虚拟内存大小相加做为页面文件最小值的参考。
这篇文章转了好几手了,不知道源头在哪了,对不住了。。。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4583552次
积分:43245
积分:43245
排名:第67名
原创:572篇
转载:315篇
译文:24篇
评论:1084条
大叔的年龄小伙子的心,喜欢折腾,对自己感兴趣的事物有一种痴迷劲儿,不弄出个所以然来是不会轻易放手的。年龄大再加上事情多,非全速前进不可了。
(1)(3)(1)(1)(4)(2)(1)(2)(4)(1)(3)(7)(4)(2)(7)(6)(6)(14)(15)(23)(16)(12)(15)(14)(11)(6)(6)(4)(5)(6)(8)(11)(3)(4)(10)(12)(3)(6)(6)(1)(5)(1)(16)(7)(6)(1)(6)(1)(5)(11)(2)(1)(5)(7)(2)(7)(9)(11)(9)(5)(12)(18)(18)(21)(25)(30)(35)(20)(28)(31)(32)(30)(39)(85)(40)(34)(15)(15)(3)(3)(1)(4)(2)(4)
阅读:143796
文章:13篇
阅读:28440
文章:53篇
阅读:652279
文章:10篇
阅读:74080
文章:57篇
阅读:498129
文章:46篇
阅读:100302关注今日:6 | 主题:272734
微信扫一扫
扫一扫,下载丁香园 App
即送15丁当
【教程】Windows任务管理器中的CPU占用率和物理内存分别是什么意
页码直达:
这个帖子发布于2年零259天前,其中的信息可能已发生改变或有所发展。
Windows任务管理器中的CPU占用率和物理内存分别是什么意CPU使用记录:显示cpu的使用率随时间的变化情况的图表,默认刷新率为每两秒一次,可通过查看菜单调节刷新率,如果你的cpu是双核的,或者是超线程的,这里将同时显示两个核心的使用率 显示两个cpu使用记录 ◆CPU使用:表示当前使用到了cpu资源的百分之几。如果你的cpu使用率长期性太高,那表明:◆1是你的电脑中毒了。◆2是某个软件出错了。◆3是该升级电脑了。CPU使用记录:显示cpu的使用率随时间的变化情况的图表,默认刷新率为每两秒一次,可通过查看菜单调节刷新率,如果你的cpu是双核的,或者是超线程的,这里将同时显示两个核心的使用率 显示两个cpu使用记录PF使用率:PageFile(虚拟内存),物理内存已经不够用的时候,把将那些暂时不用的数据放到硬盘的虚拟内存文件里,等使用时再调用出来,要降低PF使用率最好的办法是增加内存。PF使用率太高,那表明:1是你的物理内存太小了。2是你启动的程序太大型(比如ps)太多了3是你的虚拟内存设置的不合理,常常弹出虚拟内存不足的可以通过 我的电脑→属性→高级→性能→设置→高级→虚拟内存→设置→更改→选择虚拟内存放置的分区(建议放在系统盘外的分区)→选择自定义或系统管理的大小→设置→确定设置虚拟内存 页面文件使用记录:显示虚拟内存使用情况随时间的变化情况的图表,,可通过查看菜单调节刷新率。◆句柄:用于唯一标识资源(例如文件和注册表项)的值,以便程序可以访问它。是一种指针的指针。◆线程:在运行程序指令的进程中的对象,线程允许在进程中进行并发操作,并使一个进程能在不同处理器上同时运行其程序的不同部分。◆进程:一个可执行程序或一种服务。◆物理内存:电脑的物理内存使用情况◆总数:总的物理内存量◆可用数:当前物理内存剩余可用量,指使用虚拟内存前所剩余的物理内存◆系统缓存:被分配用于系统缓存用的物理内存量。主要来存放一些关键程序和数据等。一但系统或者程序需要,部分内存会被释放出来。◆认可用量:指物理内存和虚拟内存总和的相关信息◆总数:是指当前所用物理内存和虚拟内存的总和◆限制:系统可以提供的最高物理内存和虚拟内存的总和◆峰值:指此次开机到当前来使用内存的最高纪录。◆核心内存:操作系统和必要的驱动程序所占用的内存◆总数:操作系统和必要的驱动程序所占用物理内存总数.◆分页数:可以复制到页面文件中的内存,一旦系统需要这部分物理内存的话,它会被&映射&到硬盘,由此可以释放部分物理内存◆未分页:保留在物理内存中的内存,这部分不会被映射到硬盘,即页面文件中。本文由xp3系统下载站
不知道邀请谁?试试他们
微信扫一扫
广告宣传推广
政治敏感、违法虚假信息
恶意灌水、重复发帖
违规侵权、站友争执
附件异常、链接失效
关于丁香园}

我要回帖

更多关于 135 2418 0982 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信