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