win2K中的“秘密武器”之記憶體工具(轉)

amyz發表於2007-08-11
win2K中的“秘密武器”之記憶體工具(轉)[@more@]

  4. 記憶體快照

  這個工具可以將所有記憶體資源的消耗情況寫進一個日誌檔案中, 供以後分析使用,有點類似"快照"的方式.日誌檔案使用的預設名字是Memsnap.log,當然在建立這個日誌檔案時,也可以用其它你認為合適的名字。在win98和CW2KP中,系統資訊中都有一個和這個工具的作用類似的程式:Dr Watson,俗稱“系統快照”。Win98中的Dr Watson功能過於簡單,到了CW2KP中,Dr Watson的功能大大加強,特別是對出錯程式列出的資訊很詳細,如果使用得當,對付出錯程式的效果還是理想的.至於顯示出的資訊,大部分都與CPU的暫存器和程式的堆疊有關,屬於底層資訊,對一般使用者的參考價值不大。  

  MemSnap完整的語法為:

  memsnap [-t] [-g] [-?] [logfile]

  引數及說明:

  -t :加入標記資訊,包括格林威治時間、資料及計算機名稱。

  -g:加入GDI和使用者資源的數目

  logfile:指定用來寫如資訊的日誌檔名稱,預設的名稱是: Memsnap.log.

  5. 記憶體監視工具Poolmon.exe

  這個工具可以監視記憶體中總共使用的頁面數和非頁面的"記憶體池",以探測記憶體中有無"空洞"存在.記憶體中的所謂"空洞"是指:本來可供使用、但實際上並未使用的區域.減少空洞可以提高記憶體的使用效率,防止記憶體的浪費.與使用別的命令列程式不同,這個程式需要在載入執行之後才可以得到"線上"的提示幫助資訊.另外,這個工具還需要一個叫做gflags的程式來配合,更麻煩的是程式gflags也像前面介紹的有些程式一樣,具有適應兩種環境的版本.這種互相交叉的用法使得不熟悉它們相互關係的人感到眼花繚亂.下面結合Poolmon.exe的使用,對二者都先介紹命令列的版本.

  1、 在使用Poolmon.exe之前,必須先執行gflags.可以在“開始-$#@62;執行”中鍵入cmd,點選確定開啟命令列視窗,(注意:本文中所有命令列程式都可以先用cmd開啟一個類似dos模式的視窗),然後在視窗中鍵入命令和引數,執行該命令列程式:gflags -r +ptg 引數的含義到介紹gflags的GUI版本時再解釋.

  2、 執行後重新啟動計算機.

  3、 重新啟動成功後,即可在命令列中執行 poolmon,其語法如下:

  poolmon [itag] [xtag] [switch]

  引數及說明:

  itag :僅列出與記憶體池匹配的標記名字,標記名字中可以包含統配符?或*.

  xtag :列出每個不與記憶體池匹配的標記名字,標記名字中可以包含統配符?或*.

  引數後面還可以使用以下開關:

  t :依據字母順序列表.          p :依據記憶體池型別列表.

  a :依據記憶體分配的大小列表.      f: 依據自由記憶體列表.

  d :依據分配和未分配之間的差異來列表. e :總合計列表.

  b:依據使用的最大值列表 .  m :依據分配的最大值列表.

  L :對所顯示資訊的那些行,背景顏色的控制開關,預設是開(即以不同顏色來顯示區別)

  從我驗證的印象看,按照上述步驟執行Poolmon 後,命令列視窗中以行列方式顯示關於記憶體的資訊,每一行對應一個tag名,活動部分的Tag行背景顏色與非活動部分不同.至於這些行的先後順序和顯示行的總數,決定於所用的開關引數

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-947006/,如需轉載,請註明出處,否則將追究法律責任。

相關文章