#E6E6E6 【VB】ExtraCPU:CPU 與記憶體使用率檢視精靈 作者:吳文成

  我的作業系統一開機 ,就會自動執行 SkinMem 這套即時檢視 CPU 與記憶體使用率的小軟體,這套英文的免費軟體說它小,可是它安裝起來也有七百多 KB。掌握電腦即時的 CPU 與記憶體使用率是重要的,因為這樣

[[img src=computer/ExtraCPU.gif height=247 width=433 align=middle]]

可以瞭解作業系統的忙碌情形與使用效能,也可以得知到底是哪一套軟體佔用了我大量的 CPU 與記憶體資源 , 例如網頁編輯軟體 Dreamweaver 與影像處理軟體 PhotoImpact 就常常把我的 CPU 使用率搞到 100% , 或者是我因而發覺,哪個網站網頁的 Javascript 語法或 Flash 動畫會拖累我的系統效能。這陣子我寫了包含轉檔功能的影音軟體 ExtraPlayer,為了讓使用者瞭解 ExtraPlayer 在播放影片與進行轉檔程序時 , 所耗用的 CPU 使用率,所以我有必要另外撰寫一套即時檢視 CPU 使用率的小軟體 ExtraCPU 。我的構想是,它最好能夠圖形化地隨時間顯示 CPU 的使用歷程 , 後來為了要取代我以往所使用的 SkinMem——它揭示了記憶體的使用情況——所以
,我又加入了即時檢視記憶體使用率的功能到 ExtraCPU 裡 。 現在,我作業系統一開機 , 自動執行的不再是 SkinMem, 而是自己撰寫的 ExtraCPU
,這應該算是名副其實的小軟體,因為 ExtraCPU 只有 28 KB 而已。

   獲取即時 CPU 使用率的模組設計是比較麻煩的 , 麻煩之一是 NT 的 Windows 與非 NT 的 Windows 獲取即時 CPU 使用率的方法並不一樣 , 所以需要分別撰寫 cpuUsage.cls 與 cpuUsageNT.cls 兩個物件類別 。相反的,獲取即時的記憶體使用率,在模組設計上簡單,可是在介面設計上卻是比較麻煩。作業系統的記憶體分類有好幾種,主要包括了實體記憶體、虛擬記憶體與分頁檔空間 ,它們都可以由一個 API 函數 GlobalMemoryStatus 所取得,只需要撰寫寥寥幾行的 memUsage.cls 物件類別即可 , 所以它的模組設計是簡單的,可是,傷腦筋的地方是在,這三種記憶體分類要如何「
整合」進 ExtraCPU 的介面架構呢 ? 也就是說,我要如何把這三種記憶體包裹成一組概念 , 讓它與 CPU 使用率有同等階層的 GUI( Graphical User Interface)顯示方式 ? 正如大家所看到的,我採取的方法就是,先將「偵測類型選項」分為 CPU 與記憶體兩大類 , 然後在「外觀整體選項」裡分類為詳細模式、標準模式、精簡模式與最小模式。也就是,在前者處理概念包裹的問題,在後者處理圖形化介面的問題 , 就這樣,把 CPU 與不同類別的記憶體整合在一起。就這麼簡單?看到「成品」當然會發覺處理作法竟然很簡單,可是它包含了重要的模組與介面整合的技巧,它也讓我等待三、四天,在頓悟一個符合架構美的解決方法的「靈感」。

  在「靈感」頓悟出來之後,它才變成一個小巧可愛的軟體,只要一開機,我就看到它顯示重要的系統資訊。看看哪一天我真的太閒了(那一天也有可能是我瘋了) , 我再把 ExtraCPU 改版為可以即時偵測網路上傳與下載速度的軟體,並且它可以進一步揭示作業系統正運行的應用程式與處理程序。嗯,「一步江湖無盡期」,還有下一句,「半生閑隱今終止」。

  讓我回頭來談談記憶體的分類:實體記憶體、虛擬記憶體與分頁檔空間。實體記憶體(Physical Memory,又稱物理記憶體)一般指的就是電腦所安裝的「 隨機存取記憶體( Random-Access Memory,RAM )」,像我的 RAM 是 256 MB, 實際總計為 224 MB( 228848 KB), 當你關閉電腦的時候,存放在 RAM 中的資訊就會遺失。而虛擬記憶體(Virtual Memory
)是擴充到本地硬碟空間的暫存存放區,當電腦要執行多於電腦本身擁有之記憶體容量的程式時,就會使用它,即使你的電腦只有 32 MB 的 RAM
,作業系統仍然可以存取電腦硬碟上 4 GB 的虛擬記憶體,而當下無法裝入電腦記憶體的程式資料會儲存到分頁檔。

  所以,虛擬記憶體是一種廣義的概稱,它的組成包含了所有可用的與可延伸的實體記憶體與分頁檔空間。但是, 一般我們談到 MEM 的使用情況,以及主要要看的記憶體使用率,指的不是實體記憶體,也不是虛擬記憶體,而是分頁檔空間/記憶體(PageFile Size/Memory), 分頁檔就是電腦(各個磁碟機)根目錄下的系統檔案 pagefile.sys,它的預設大小會較實體記憶體大 1.5 倍(你也可以變更虛擬記憶體的分頁檔大小), 分頁檔也稱為交換檔案,它是用來保留無法裝入記憶體的部分程式及資料檔案,作業系統會在需要的時候,將資料從分頁檔移動到記憶體中,也會將資料從記憶體移動到分頁檔,以空出以後讀入新資料的實體記憶體空間。

   如果你想要得知更詳細的相關資訊 , 你就需要另外找 Windows 系統的專書來看 。 就目前的功能來說 ,ExtraCPU 已經符合了我的要求,希望它對大家也是實用的系統工具。

可執行檔下載

瀏覽發行頁面
2005/05/26