PDA

查看完整版本 : [轉貼]資源與RAM多少沒關係


吉米丘
07-31-2002, 13:34
轉貼自漁家小舖七嘴八舌論壇 (http://www.fishman.idv.tw/forum/topic.asp?TOPIC_ID=660&FORUM_ID=27&CAT_ID=9)

什麼是「系統資源」(System Resources)?我在哪裡可以看到我的系統資源剩多少?為什麼叫做「資源」?

你在桌面上「我的電腦」圖示上按滑鼠右鍵選內容,到「效能」頁,其中有一項目叫做「系統資源」,它是以百分比來顯示,告訴你目前 可用的資源有多少。

什麼叫做「系統資源」(System Resources)?在「系統資源與記憶體多寡沒有關係」一文中我已經有大略的講過,這邊我再解釋一次:

Windows 在記憶體中,需要一塊空間來追蹤、儲存你目前螢幕上以及正在執行的這些程式的狀態,這一塊空間,它有一個專有名詞:就叫做「系統資源」 。

因為 Windows 把記錄與追蹤應用程式的工作(就是 User Resources 與 GDI Resources),都放在這一塊特殊的地方,所以換個角度看,這空間要是塞滿了會怎樣?當然就沒有辦法執行程式了,因為沒有空間來記錄執行程 式時的游標、按鈕、顏色..等等。(不管你 RAM 還剩多少)

而這塊叫做「系統資源」的空間,大致就是維持 64K 的大小,不管你實體的 RAM 有多少,Windows 作業系統就是劃這麼大塊地方來存放「系統資源」。

為什麼是 64K (Kilobytes)?

這跟「歷史」有關,你可以說他是歷史包袱,也可以稱之為 Windows 「原罪」。

時間必須往回追溯到 Windows 3.x 的時代,Windows 3.x 作業系統是以 Intel 286 的 CPU 架構為藍本發展而成,自然也就是個 16 bit 的作業系統,16 位元的二進位數運算能力是 64K,16 bit 所能記憶的容量也就限制在此,所以系統資源有了這種 64K 的限制,以當時的軟、硬體環境來說,只能做到如此。

Windows 95/98/Me 是 32 - bit 架構,32 位元的二進位數運算能力比 16-bit 高出了千百倍,「照理說」,應該不會再出現「系統資源不足」的夢靨,然而,事情不是這麼理想。

32 位元作業系統為了要向下相容(如果以前的程式不能跑了,你會買這種新的作業系統嗎),讓所有的 16 bit 程式、component 都可以順利在 32 bit 作業系統下運作,所以還是維持了這個系統資源 64K 的傳統。

Windows 9x 比起 Windows 3.x 改善了很多,不會一下子就把 System Resources 吃光,但是,舊的 16-bit 程式跟 32 bit OLE 仍然是會咬著系統資源不放,所以,系統資源還是會有耗盡的機會,只是機會不像以往舊 Windows 時代那麼高而已。

應用程式吃系統資源的多寡,跟程式碼撰寫是否好壞有關係,有的應用軟體在結束之後,仍然抓著系統資源不放,這也是撰寫不良的程式。

隨著作業系統的差異,對於「低」系統資源 Windows 的忍耐限度也不同,像是同樣只剩 10%,在 Windows Me 底下的操作仍然會比 Windows 98 要順暢。

一般來講,一開機可以有 70% 左右的系統資源都算正常,如果你一進入 Windows 發現系統資源只有 50% 左右,這一定是你一開機就自動載入了一堆程式,你應該不可能有那麼多的程式需要一開機就載入,移除一些吧。

有些程式會佔用多一點的系統資源、有些軟體會用較少的系統資源,這是當然的,因為每個軟體的系統資源使用情況不可能完全一樣,你 不可能經過任何的設定去要某個軟體少用一點的系統資源,除非,你改寫它的程式碼才有可能。

補充:我做哪些行為會佔用較多的系統資源?

先前說過,有程式執行,就會吃系統資源,這是一定的。但是,有哪些系統資源是在我們不經意的情況下,讓他被佔掉的呢?(或者說, 就是你可以省下的)

佈景主題、桌面底圖、動畫游標、Active Desktop、還有 OFFICE 快捷列、還有擁有極度炫麗外表的視窗軟體。

前面提到的這類行為,因為有些一開機就會載入、有的是炫麗外表會佔用更多 GDI,再加上很多人都喜歡把桌面弄得「美美的」,所以與那些沒有使用這些功能的系統比起來,會佔多一點資源。

天下沒有白吃的午餐,要美麗、要方便,就要付出代價,你付的代價就是「系統資源」。

不過,我在這裡還是提醒讀者,凡事不要「本末倒置」,執行程式就會消耗系統資源,這是天經地義的,只要你覺得系統穩定、跑起來都很順、 什麼感覺都沒有,使用佈景主題、Office 快捷列等等,並無傷大雅,你資源擺在那邊不用也是浪費。