操作系统试验 android内存管理理 为什么页面文件总数为

posts - 437,&
comments - 62,&
trackbacks - 0
对于系统开机后内存的占用量的讨论,各种分析和口水的文章多之又多,似乎开机时占用的内存越小,这个系统就越优秀.但事实是这样么?请您耐心读完下面的文章,寻求最适合自己的解答.---------------------------正文开始---------------------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& 原理篇&& 如果你已经使用Windows有一段时间,你会对虚拟内存和页面文件非常熟悉。在过去,为了在我们内存稀缺的系统中让页面文件尽可能地高效,我们都花费大量的时间来改动虚拟内存设置。&& 后来,RAM的价格降到了更能让人承受的范围,取代了改动虚拟内存,我可以通过增加更多的RAM来提高系统性能。尽管操作系统仍使用虚拟内存,但是在系统中拥有更多的RAM会减少操作系统对虚拟内存的依赖。现在,系统中拥有512MB甚至12GB的RAM已经不再是什么稀奇的事情。所以你不必再像过去那样考虑虚拟内存。&& 然而,这将随着Windows Vista而改变,它带来了一个被称为SuperFetch的新型内存性能增强系统和一种通过外部存储设备的方法扩展虚拟内存的新方法。在本版的Windows Vista报告中,我将更深入的介绍SuperFetch。虚拟内存&& 我们先了解一下虚拟内存。首先,重申包括Vista以及现在的在内的Windows操作系统都一直在利用虚拟内存是重要的,即使当所有运行的进程所需要的内存没有超出系统中安装的RAM数量。实际上,当系统中每个进程被操作系统导入时,在运行中都自动分配了一个虚拟内存地址。当由所有运行的进程使用的内存超过了可用的RAM数量时,操作系统将开始把内存空间页面移出虚拟地址空间,移向硬盘,从而释放RAM以备他用。种内存页面的移动称为交换技术而且页面文件经常被称为交换文件。这种交换技术需要许多额外支出。然后这些页面被存储在根分区的一个名为Pagefile.sys(交换文件)的文件中。而当需要再次运行那些被释放的程序时,Windows会到Pagefile.sys中查找内存页面的交换文件,同时释放其它程序的内存页面,再完成当前程序的载入过程。 这种互换内存页面的过程被称之为“交换”(switch)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
--------------------------------XP 下的预读技术----------------------------------&& 预读:是在载入某个程序之前,从磁盘向内存中导入关键数据和代码段,可以理解为预先从硬盘上中载入一部分该程序运行所需的数据到物理内存中,这样便能加快程序的启动速度。记住了这一点,让我们大致了解预读是如何工作的。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Prefetch&& 为了让整个预读操作切实地提高性能,WindowsXP缓存管理器在系统启动过程中以及在各种应用程序被导入的时候,监视数据在磁盘和RAM之间以及在RAM和虚拟内存之间的移动。当缓存管理器监视这些事件时,它构造目录和每个应用程序或进程引用的所有文件的映射。这些映射被保存到\Windows\Prefetch文件夹扩展名为.pf的文件中。& & && 在这些映射文件被创建之后,缓存管理器将在系统启动以及导入应用程序的时候使用它们以提高效率。更明确地,缓存管理器会拦截将被导入的每一个进程或应用程序并且查看\Windows\Prefetch文件夹以确定是否存在相应的映射。如果存在,缓存管理器将指派文件系统立即访问映射中的目录或文件引用。然后缓存管理器将警告内存管理器并告诉它使用映射文件中的信息向内存中导入数据或代码。当这个预读操作完成之后,缓存管理器将允许应用程序或进程继续导入。在应用程序或进程这样做的过程中,它会发现需要的大部分文件和数据已经存在于内存中,因此减少了磁盘访问量并且使得应用程序或进程导入或响应得更迅速。&& 为了进一步提高这个预读操作的效率,WindowsXP会定期地分析映射文件的内容,编辑一个目录和文件列表,以导入的顺序组织它们,并且将这些信息保存在\Windows\Prefetch文件夹的名为Layout.ini的文件中。然后它会安排磁盘碎片整理程序定期运行并且使用Layout.ini文件中的信息以重新部署所有目录文件,让它们排列在磁盘中临近的区域。&& 虚拟内存技术虽然解决了内存不足的问题,但在程序运行过程中经常需要载入其它文件到内存中,此时如果物理内存不足,则需要进行换页操作,频繁地读写硬盘,造成程序运行时响应缓慢。前面我们已经粗略了解了Windows XP操作系统中虚拟内存以及预读技术的机理。仔细思考它们的执行过程,我们不难发现,这项技术从根本上说仍然属于被动式的调度。换句话说,只有在程序主动发起载入请求时,Windows才会进行相关的调度操作。这也是为什么XP开机时内存占用量少于v/7系统那么多的原因所在.想要更多了解新系统带来的新技术么?(囧....06年就有了,就是没人爱用),请继续看下文!------------------------vista/win7下的管理-------------------------------------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& SuperFetch&
Superfetch技术的中心思想是:“过分空余的内存空间即是浪费”。的确,如果一个操作系统总是保留着过多的空余物理内存耗费电能,却不能够利用这些多余的内存空间提高系统性能的话,为什么不更好地利用这些多余的内存空间呢?将这些多余的物理内存作为缓存使用,就是Superfetch技术的本质。而也正是由于采用了这种以内存为缓存的策略,才造成了Vista对内存容量的饥渴!既然你知道了WindowsXP的Prefetch技术是如何工作的,你就了解了Windows Vista的SuperFetch技术工作原理的70%。作为WindowsXP的Prefetch的下一版本,SuperFetch包括了Prefetch的所有功能并做的更多。 && 首先,SuperFetch克服了WindowsXP的Prefetch中的一个大缺点。正如我前面解释的,Prefetch通过导入大部分由内存中一个应用程序或进程需要的文件或数据,所以可以在需要时更迅速地访问它们。然而,由于这些文件和数据存在于内存中,所以它们受控制虚拟内存的规则支配。换句话说,当其他应用程序需要访问内存,任何预读的数据会被移出到硬盘上的页面文件中。当再次需要它时,必须将它从页面文件中移回到内存,这当然抵消了性能增强。&& SuperFetch更进一步地保证你获得对性能增强的最有效使用。除了构造我前面提到的映射文件之外,SuperFetch还会构造你使用的应用程序的描述文件,它包括你在何时使用和使用的频率等信息。然后,SuperFetch将跟踪描述文件中的应用程序并且记录任何预读数据在何时被移出到页面文件中。SuperFetch将监视引起预读数据被移出到页面文件的应用程序描述文件,并且应用程序一完成,它就将预读数据取回到内存中。所以当你转到访问应用程序,预读数据将在内存中再次可用而且应用程序会快速响应。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && 我们考虑这样一个例子,假设你有在工作的午休时间运行杀毒软件的习惯,那么在下班前,一般会停止处理工作程序,然后运行杀毒软件,此时,如果使用的是WindowsXP,那么操作系统会将工作程序所占用的内存页面写入硬盘交换文件中,并读取杀毒软件的文件载入内存。午休过后,杀毒软件已经运行完毕,但是你在重新开始使用工作程序的时候,系统仍然需要经历杀毒软件和工作程序的硬盘交换文件与内存页面的交换过程,此时程序的响应速度明显降低。&& 如果系统能够进一步自动记录下这些经常性的操作行为所发生和结束的时间,当时运行的前台和后台软件等等详细情况,那么在内存有空闲空间的时候,就可以在预定的时机预先将一部分文件载入到内存中,这样就避免了上面例子中发生的不愉快情况。这就是superFetch带来最切实际的好处,当然,你的内存"占用量"也是多的吓人,但是从上面的对比和分析可以得出结论,这个内存"占用"和XP下的"占用"不可同日而语,而是恰恰相反,你需要缓存更多的程序到内存,以加快运行该程序的速度,而如果该程序的内存使用量超过了以前缓存的用量,系统就会自动释放内存和页面文件,而如果是操作系统下运行源生64位的程序,会明显体会到先进的内存管理带给我们性能上的提升(本文强调的是内存部分,64位和系统的区别不做赘述,简单来讲,这个是因为64位操作系统可以从容地给程序划分连续的物理内存空间,有疑问的话请多用站内搜索)注:vista和win7的预读技术也存在着小小差异,因为本人能力有限,只能讨论v/7预读功能相同的部分,不同的部分请各位补充完善!----------------------------------------思考-------------------------&& 如果您耐心的读到这里,也许会对vista和WIN7带来的内存管理特性有个大概的了解,在您的心中,是否一个系统"好"与"不好",已经有了一个很明确的的答案呢?正确认识新系统带来的改变,用动态的眼光去看待新事物!(囧..举个例子,4:3下的圆圈,16:9下有可能就是扁的,多个角度看问题,也许答案并不唯一.)----------------------------------------总结----------------------&& 电脑配置现在越来越好,对于不能流畅运行v/7系统的朋友,我不做太多说明,用我一刀切的想法就是,不管是通过什么途径的努力,换一下配置吧,小马拉大车真的很难,也要体谅一下自己的电脑,大热天这样折腾,也辛苦.这篇文章希望对你们能有点参考价值.对于配置很牛X的朋友,这点开销也许算不了什么,只是要那种很"纯净"的感觉,那我也无话可说,每个人用的方式不一样,我也希望能做的尽善尽美.说这么多废话,不是喷人,也不是想找喷,希望本篇东借西摘由本人整理的文章,能给大家带来点参考意见,停止无意义的争论和口水,共同打造纯净的远景论坛!
阅读(...) 评论() &提高Windows内存效率的方法
如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题。下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法。
如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题。下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法。
1、改变页面文件的位置
其目的主要是为了保持虚拟内存的连续性。因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率。而且系统盘文件众多,虚拟内存肯定不连续,因此要将其放到其他盘上。改变页面文件位置的方法是:用鼠标右键点击“我的电脑”,选择“属性→高级→性能设置→高级→更改虚拟内存”,在驱动器栏里选择想要改变到的位置(如图1)即可。值得注意的是,当移动好页面文件后,要将原来的文件删除(系统不会自动删除)。
2、改变页面文件的大小
改变了页面文件的位置后,我们还可以对它的大小进行一些调整(如图2)。调整时我们需要注意,不要将最大、最小页面文件设为等值。因为通常内存不会真正“塞满”,它会在内存储量到达一定程度时,自动将一部分暂时不用的数据放到硬盘中。最小页面文件越大,所占比例就低,执行的速度也就越慢。最大页面文件是极限值,有时打开很多程序,内存和最小页面文件都已“塞满”,就会自动溢出到最大页面文件。所以将两者设为等值是不合理的。一般情况下,最小页面文件设得小些,这样能在内存中尽可能存储更多数据,效率就越高。最大页面文件设得大些,以免出现“满员”的情况。
3、禁用页面文件
当拥有了512MB以上的内存时,页面文件的作用将不再明显,因此我们可以将其禁用。方法是:依次进入注册表编辑器“HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Ma-nagerMemoryManagement”下,在“DisablePa-ging Executive”(禁用页面文件)选项中将其值设为“1”即可(如图3)。
提示:试试键盘 “← →” 可以实现快速翻页&
热门文章排行全面优化Windows系统内存的九招方法介绍
作者:佚名
字体:[ ] 来源:互联网 时间:06-18 16:54:17
无论使用那个操作系统,电脑的运行速度和内存的使用效率一直是我们所关注的问题,今天本章就给大家介绍在windows操作系统中,如何提高内存的使用效率和优化内存管理
如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题。下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法。   1.改变页面文件的位置   其目的主要是为了保持虚拟内存的连续性。因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率。   而且系统盘文件众多,虚拟内存肯定不连续,因此要将其放到其他盘上。改变页面文件位置的方法是:用鼠标右键点击&我的电脑&,选择&属性&高级&性能设置&高级&更改虚拟内存&,在驱动器栏里选择想要改变到的位置即可。   值得注意的是,当移动好页面文件后,要将原来的文件删除(系统不会自动删除)。   2.改变页面文件的大小   改变了页面文件的位置后,我们还可以对它的大小进行一些调整。调整时我们需要注意,不要将最大、最小页面文件设为等值。因为通常内存不会真正&塞满&,它会在内存储量到达一定程度时,自动将一部分暂时不用的数据放到硬盘中。最小页面文件越大,所占比例就低,执行的速度也就越慢。最大页面文件是极限值,有时打开很多程序,内存和最小页面文件都已&塞满&,就会自动溢出到最大页面文件。   所以将两者设为等值是不合理的。一般情况下,最小页面文件设得小些,这样能在内存中尽可能存储更多数据,效率就越高。最大页面文件设得大些,以免出现&满员&的情况。   3.禁用页面文件   当拥有了512MB以上的内存时,页面文件的作用将不再明显,因此我们可以将其禁用。方法是:依次进入注册表编辑器&HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Ma-nagerMemoryManagement&下,在&DisablePa-ging Executive&(禁用页面文件)选项中将其值设为&1&即可。   4.清空页面文件   在同一位置上有一个&ClearPageFileAtShutdown(关机时清除页面文件)&,将该值设为&1&。这里所说的&清除&页面文件并非是指从硬盘上完全删除pagefile.sys文件,而是对其进行&清洗&和整理,从而为下次启动Windows XP时更好地利用虚拟内存做好准备。   5.调整高速缓存区域的大小   可以在&计算机的主要用途&选项卡中设置系统利用高速缓存的比例(针对Windows 98)。如果系统的内存较多,可选择&网络服务器&,这样系统将用较多的内存作为高速缓存。在CD-ROM标签中,可以直接调节系统用多少内存作为CD-ROM光盘读写的高速缓存。   6.监视内存   系统的内存不管有多大,总是会用完的。虽然有虚拟内存,但由于硬盘的读写速度无法与内存的速度相比,所以在使用内存时,就要时刻监视内存的使用情况。Windows操作系统中提供了一个系统监视器,可以监视内存的使用情况。一般如果只有60%的内存资源可用,这时你就要注意调整内存了,不然就会严重影响电脑的运行速度和系统性能。
 7.及时释放内存空间   如果你发现系统的内存不多了,就要注意释放内存。所谓释放内存,就是将驻留在内存中的数据从内存中释放出来。释放内存最简单有效的方法,就是重新启动计算机。   另外,就是关闭暂时不用的程序。还有要注意剪贴板中如果存储了图像资料,是要占用大量内存空间的。这时只要剪贴几个字,就可以把内存中剪贴板上原有的图片冲掉,从而将它所占用的大量的内存释放出来。   8.优化内存中的数据   在Windows中,驻留内存中的数据越多,就越要占用内存资源。所以,桌面上和任务栏中的快捷图标不要设置得太多。如果内存资源较为紧张,可以考虑尽量少用各种后台驻留的程序。平时在操作电脑时,不要打开太多的文件或窗口。   长时间地使用计算机后,如果没有重新启动计算机,内存中的数据排列就有可能因为比较混乱,从而导致系统性能的下降。这时你就要考虑重新启动计算机。   9.提高系统其他部件的性能   计算机其他部件的性能对内存的使用也有较大的影响,如总线类型、CPU、硬盘和显存等。如果显存太小,而显示的数据量很大,再多的内存也是不可能提高其运行速度和系统效率的。如果硬盘的速度太慢,则会严重影响整个系统的工作。
大家感兴趣的内容
12345678910
最近更新的内容【图片】关于虚拟内存和页面文件【显卡吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,489,954贴子:
关于虚拟内存和页面文件收藏
@单带任何图很多人认为页面文件就是虚拟内存,在设置里把页面文件关闭掉,就等于关闭了虚拟内存。这是错的。虚拟内存=页面文件+物理内存。关闭页面文件只是改变了一部分虚拟内存,和所谓关闭虚拟内存差了十万八千里。从NT开始,普通的应用程序已经无法直接访问物理内存,只能访问虚拟内存,再由CPU将虚拟内存地址转换为物理内存地址。所以你开的软件、玩的游戏,访问的都是虚拟内存。(驱动应该可以直接访问物理内存,这方面了解比较少。)换个说法,普通程序能访问的内存,一定是虚拟内存。所以说,虚拟内存你根本关闭不掉。不可能因为你关闭了页面文件,直接改变windows的内存管理机制。-------------------------------------------------------------------下面转自微软关于虚拟地址空间的说明。当处理器读或写入内存位置时,它会使用虚拟地址。作为读或写操作的一部分,处理器将虚拟地址转换为物理地址。通过虚拟地址访问内存有以下优势:程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB)保存到磁盘文件。数据或代码页会根据需要在物理内存与磁盘之间移动。不同进程使用的虚拟地址彼此隔离。一个进程中的代码无法更改正在由另一进程使用的物理内存。进程可用的虚拟地址范围称为该进程的“虚拟地址空间”。每个用户模式进程都有其各自的专用虚拟地址空间。 对于 32 位进程,虚拟地址空间通常为 2 GB,范围从 0x 至 0x7FFFFFFF。对于 64 位进程,虚拟地址空间为 8 TB,范围从 0x000' 至 0x7FF'FFFFFFFF。一系列虚拟地址有时称为一系列“虚拟内存”。此图说明了虚拟地址空间的一些重要功能。该图显示了两个 64 位进程的虚拟地址空间:Notepad.exe 和 MyApp.exe。每个进程都有其各自的虚拟地址空间,范围从 0x000'0000000 至 0x7FF'FFFFFFFF。每个阴影框都表示虚拟内存或物理内存的一个页面(大小为 4 KB)。注意,Notepad 进程使用从 0x7F7' 开始的虚拟地址的三个相邻页面。但虚拟地址的这三个相邻页面会映射到物理内存中的非相邻页面。而且还注意,两个进程都使用从 0x7F7' 开始的虚拟内存页面,但这些虚拟页面都映射到物理内存的不同页面。用户空间和系统空间诸如 Notepad.exe 和 MyApp.exe 的进程在用户模式下运行。核心操作系统组件和多个驱动程序在更有特权的内核模式下运行。有关处理器模式的详细信息,请参阅用户模式和内核模式。每个用户模式进程都有其各自的专用虚拟地址空间,但在内核模式下运行的所有代码都共享称为“系统空间”的单个虚拟地址空间。当前用户模式进程的虚拟地址空间称为“用户空间”。在 32 位 Windows 中,可用的虚拟地址空间共计为 2^32 字节(4 GB)。通常较下的 2 GB 用于用户空间,较上的 2 GB 用于系统空间。在 32 位 Windows 中,你可以指定(在启动时)超过 2 GB 用于用户空间。结果是系统空间可用的虚拟地址更少。可以将用户空间的大小增至 3 GB,在这种情形下系统空间仅有 1 GB。若要增大用户空间的大小,请使用 BCDEdit /set increaseuserva。在 64 位 Windows 中,虚拟地址空间的理论大小为 2^64 字节(16 百亿亿字节),但实际上仅使用 16 百亿亿字节范围的一小部分。范围从 0x000' 至 0x7FF'FFFFFFFF 的 8 TB 用于用户空间,范围从 0xFFFF0 至 0xFFFFFFFF'FFFFFFFF 的 248 TB 的部分用于系统空间。用户模式下运行的代码可以访问用户空间,但不能访问系统空间。此限制可防止用户模式代码读或更改受保护的操作系统数据结构。内核模式下运行的代码既可以访问用户空间,也可以访问系统空间。即,在内核模式下运行的代码可以访问系统空间和当前用户模式进程的虚拟地址空间。在内核模式下运行的驱动程序必须在直接从用户空间地址中读取或写入这些地址时非常小心。此方案说明了原因。用户模式程序发起从设备读取某些数据的请求。程序提供缓冲区的起始地址以接收数据。在内核模式下运行的设备驱动程序例程启动读取操作并将控制权返回到其调用程序。然后,设备中断了当前运行的任何线程以显示读取操作完成。 中断由在此任意线程上运行的内核模式驱动程序例程进行处理,该例程属于任意进程。此时,驱动程序不得将数据写入用户模式程序在步骤 1 中提供的开始地址。此地址位于发起请求的进程的虚拟地址空间,该进程可能很大程度上不同于当前进程。页面缓冲池和非页面缓冲池在用户空间中,所有物理内存页面都可以根据需要进行分页至磁盘文件。在系统空间中,某些物理页面可以分页,而其他页面不能。系统空间具有用于动态分配内存的两个区域:页面缓冲池和非页面缓冲池。在 64 位 Windows 中,页面缓冲池为 128 GB 的虚拟地址,范围从 0xFFFFA800' 至 0xFFFFA81F'FFFFFFFF。非页面缓冲池为 128 GB 的虚拟地址,范围从 0xFFFFAC00' 至 0xFFFFAC1F'FFFFFFFF。在页面缓存池中分配的内存可以根据需要分页至磁盘文件。在非页面缓冲池中分配的内存永远无法分页至磁盘文件。
没人看么- - 都没人回帖……………………
太长不看。插了16G
c盘就少了16G,设置少点空间就回来了。
类似茴字的四种写法
涨姿势了另外,有些人看不懂就别说没用
科普贴没人
计算机组成原理和操作系统的知识→_→怀念。另外当初关pagefile是为了啥来着。。忘了。。好像是为了不去划分硬盘当做“虚拟”内存。提高速度?反正记得一句就行了“只能访问虚拟页,虚拟页映射到物理页”
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 java 内存管理机制 的文章

 

随机推荐