作為一個程序猿,你了解任務管理器嗎?(一)


     作為一個程序猿,你是不是常常ctr+shift+Esc彈出任務管理器,圍觀那綠綠的內存和CPU使用曲線呢,你是不是跟我一樣也有過困惑,為什內存和CPU占用率明明不高,電腦卻慢得跟拖拉機一樣呢?讓我們學習一下任務管理器的內存分析功能吧。

     各個版本的Windows任務管理器還是有些出入的,我們以Windows 7平台為例。當然這篇小文章沒有辦法覆蓋整個復雜的windows內存管理,我們就盡可能簡單地將Windows內存分成兩塊,一塊是物理的內存RAM,另一塊是硬盤上的分頁文件,“pagefile.sys”。正如你所知道的分頁文件的路徑和大小可以在,計算機-屬性-高級系統設置-高級-性能,虛擬內存下面設置。

    好了,下面進入正題,Task Manager介紹。先給一個熟悉的截圖,打開任務管理器,選擇性能Tab。

首先分析下這個計數條(Counter),這個計數條的整個高度代表了這台電腦整個物理內存的大小,在這個截圖里是4GB。早期Windows版本里的這個綠條曾經包括了分頁文件和物理RAM整個的大小,而Windows 7上則僅僅是物理內存的大小。綠條的高度代表了所有進程除去文件系統緩存所消耗的內存,而並不是一般認為的當前物理內存的占用率。

在剛剛這個例子里可以看到,各個進程占用了2.28G的物理內存,那實際的物理內存使用量是多少呢?下面的數字告訴我們

Total – Free = Total amount of consumed RAM

總數 - 空閑 = 當前物理內存占用量   4087 – 264 = 3823 MB 

 

這和我們剛剛看到的2.28GB相比差了太多, 同樣出現在右下角的內存指示,給出的也並不是實際的物理內存占用率,57% * 4087 差不多是2.28G。這筆賬到底怎么算呢,原來Windows系統盡可能地使用各個進程沒有占用的物理內存做緩存,反正閑着也是閑着,多浪費啊。因此這里以緩存的物理內存是1536M,這個1536M沒有包含在2.28G里面,但是仍然占用了物理內存。公式是這樣的: 

線程占用 + 已緩存 + 空閑 = 總物理內存 

2280 MB + 1536 MB + 264 MB = 4080 MB of physical RAM

 

那么可用”Available“又從何而來呢? 可用的意義是當再起一個進程,可以占用的物理內存。 

總數 - 綠條所示 = 可用

已緩存 + 空閑 = 可用

 

下面總結一下:

綠色條: 線程占用的物理內存

總數:跟硬件相關的,物理內存總大小

空閑:沒有被占用的物理內存,因為Windows的緩存機制,一般空閑都很少。

緩存:被操作系統使用的緩存大小

可用:可以被進程使用的物理內存大小

再看一下分頁文件使用量。首先8172MB是分頁文件和物理內存的總大小。

分析分頁文件實時使用,需要另一個工具,在Windows運行里輸入“perfmon”,雙擊左側性能檢測器,增加一個分頁文件使用計數器,如下圖

 

增加計數器Paging File / %Usage / _Total 

這里7.238是分頁文件使用百分比,0,072 * 4085 = 294 MB,可見當前使用了294M虛擬存儲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM