来源:http://www.cr173.com/html/13006_1.htmlhtml
解决Windows内存问题须要对操做系统的深刻理解,同时对于如何运用Windows调试器或性能监控器要有工做认知。若是你正试着获得细节,诸如内核堆栈大小或硬盘内存消耗,你会须要调试器命令和内核数据架构相关的复杂经验。面对进程地址空间来肯定私人与共享内存利用率或总堆栈大小,即便是经验最丰富的管理员也会以为颇具挑战。编程
不要惧怕,RamMap和VMMap易化了解决内存问题的过程。你能够从Sysinternals网站上下载这些免费工具。这两个工具都是Mark Russinovich和Bryce Cogswell编写的。缓存
RamMap架构
RamMap用于展现系统和进程内存状态和利用率。它提供一个命名为“使用计数”的概要栏,它列出全部各类各样的系统内存分区,如分页池和非分页池、流程私密的、可共享的、硬盘空间、内核堆栈和映射文件。它还显示被称为Metafile的缓存文件内存空间的数量。
工具
全部这些分区又进一步分类成不一样类型的物理内存消耗,如活跃的、备用的、修改的、转变的、调零的、免费的或糟糕的。这些列中的每个均可经过点击列抬头分类。全部这些术语在Russinovich的《Windows内部书》(即«深刻解析Windows操做系统»即«Windows Internals» )一书中都有解释。如图1所示,数据以图形的列表视图整齐展现。性能
图1:RamMap 中的使用计数数据优化
RamMap还在“进程”栏中显示进程内在利用率。在这里你能够看到全部列出的进程,还有它们相应的私有内存利用率。数据还包括全部占用备用或修改页面列表的进程内存,还有用于页表项的内存量。网站
图2:RamMap进程栏 url
RamMap的另外一种运用是显示实际的物理内存用量,一页一页地识别内存清单、运用、文件名、进程、虚拟地址和池标签等属性。每一栏均可以分类,而且有一个过滤功能能够用来有选择性地分析数据。spa
图3:RamMap物理页面栏
最后,RamMap在展示缓存文件活动和数据上也作得不错。你能够运用“文件摘要”和“文件详细信息”栏向下查看系统文件缓存来肯定文件路径、它占用的大小、相应内存是在活跃的、备用的仍是修改的页面列表中。
图4:RamMap文件摘要栏
VMMap
到目前为止,咱们已经明白了RamMap如何展现系统和进程内存使用。若是你要解决的内存问题看起来和特定的进程或应用相关,你也许有必要经过使用VMMap来仔细看看。VMMap是一个过程导向的工具,它让你能够查看现有的进程或者追踪新的进程并查看其内存使用,它提供的信息远比RamMap详细。
VMMap启动时,它提示你选择你想要审查的如今进程或是开启一个新的进程。若是你启动了一个新进程,你将能追踪内存利用率,如堆和虚拟分配。在下面的图5中,我选择了communicator.exe进程。
图5: VMMap显示
一旦VMMap的主窗口显示,你能够看见屏幕分红几部分。顶部部分是进程内存消耗的一个图形概要。它分红提交空间、专用字节和工做集。在屏幕的中部部分,内存利用率根据运用分类,如专有数据、共享数据、图片、映射文件和堆大小。最后,屏幕底部显示每一个虚拟地址相应的页面类型是什么、所用的工做集大小和数量、页面保护、全部区块和分区的细节。颜色标记让你能够快速地看到特定类型的内存消耗多少空间。
VMMap提供有关进程地址空间的两个额外视图,包括一个“字符串”视图和一个“分割”视图。字符串视图让你能够搜索地址空间中存在的全部可读字符串。分割视图以颜色标记的方式显示进程虚拟地址空间,所以你能够看到多种分配、它们的大小以及它们的连续性如何。