簡(jiǎn)述用工具解決Windows內(nèi)存問(wèn)題
RamMap用于展示系統(tǒng)和進(jìn)程內(nèi)存狀態(tài)和利用率。它提供一個(gè)命名為“使用計(jì)數(shù)”的概要欄,它列出所有各種各樣的系統(tǒng)內(nèi)存分區(qū),如分頁(yè)池和非分頁(yè)池、流程私密的、可共享的、硬盤空間、內(nèi)核堆棧和映射文件。它還顯示被稱為Metafile的緩存文件內(nèi)存空間的數(shù)量。
所有這些分區(qū)又進(jìn)一步分類成不同類型的物理內(nèi)存消耗,如活躍的、備用的、修改的、轉(zhuǎn)變的、調(diào)零的、免費(fèi)的或糟糕的。這些列中的每一個(gè)都可通過(guò)點(diǎn)擊列抬頭分類。所有這些術(shù)語(yǔ)在Russinovich的《Windows內(nèi)部書》一書中都有解釋。
RamMap還在“進(jìn)程”欄中顯示進(jìn)程內(nèi)在利用率。在這里你可以看到所有列出的進(jìn)程,還有它們相應(yīng)的私有內(nèi)存利用率。數(shù)據(jù)還包括所有占用備用或修改頁(yè)面列表的進(jìn)程內(nèi)存,還有用于頁(yè)表項(xiàng)的內(nèi)存量。
RamMap的另一種運(yùn)用是顯示實(shí)際的物理內(nèi)存用量,一頁(yè)一頁(yè)地識(shí)別內(nèi)存清單、運(yùn)用、文件名、進(jìn)程、虛擬地址和池標(biāo)簽等屬性。每一欄都可以分類,并且有一個(gè)過(guò)濾功能可以用來(lái)有選擇性地分析數(shù)據(jù)。
最后,RamMap在展現(xiàn)緩存文件活動(dòng)和數(shù)據(jù)上也做得不錯(cuò)。你可以運(yùn)用“文件摘要”和“文件詳細(xì)信息”欄向下查看系統(tǒng)文件緩存來(lái)確定文件路徑、它占用的大小、相應(yīng)內(nèi)存是在活躍的、備用的還是修改的頁(yè)面列表中。
VMMap
到目前為止,我們已經(jīng)明白了RamMap如何展示系統(tǒng)和進(jìn)程內(nèi)存使用。如果你要解決的內(nèi)存問(wèn)題看起來(lái)和特定的進(jìn)程或應(yīng)用相關(guān),你也許有必要通過(guò)使用VMMap來(lái)仔細(xì)看看。VMMap是一個(gè)過(guò)程導(dǎo)向的工具,它讓你可以查看現(xiàn)有的進(jìn)程或者追蹤新的進(jìn)程并查看其內(nèi)存使用,它提供的信息遠(yuǎn)比RamMap詳細(xì)。
VMMap啟動(dòng)時(shí),它提示你選擇你想要審查的現(xiàn)在進(jìn)程或是開(kāi)啟一個(gè)新的進(jìn)程。如果你啟動(dòng)了一個(gè)新進(jìn)程,你將能追蹤內(nèi)存利用率,如堆和虛擬分配。在下面的圖5中,我選擇了communicator.exe進(jìn)程。
一旦VMMap的主窗口顯示,你可以看見(jiàn)屏幕分成幾部分。頂部部分是進(jìn)程內(nèi)存消耗的一個(gè)圖形概要。它分成提交空間、專用字節(jié)和工作集。在屏幕的中部部分,內(nèi)存利用率根據(jù)運(yùn)用分類,如專有數(shù)據(jù)、共享數(shù)據(jù)、圖片、映射文件和堆大小。最后,屏幕底部顯示每個(gè)虛擬地址相應(yīng)的頁(yè)面類型是什么、所用的工作集大小和數(shù)量、頁(yè)面保護(hù)、所有區(qū)塊和分區(qū)的細(xì)節(jié)。顏色標(biāo)記讓你可以快速地看到特定類型的內(nèi)存消耗多少空間。
VMMap提供有關(guān)進(jìn)程地址空間的兩個(gè)額外視圖,包括一個(gè)“字符串”視圖和一個(gè)“分割”視圖。字符串視圖讓你可以搜索地址空間中存在的所有可讀字符串。分割視圖以顏色標(biāo)記的方式顯示進(jìn)程虛擬地址空間,因此你可以看到多種分配、它們的大小以及它們的連續(xù)性如何。