廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 7382 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
憶楓 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x4 鮮花 x52
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[教學][RAM] 記憶體最佳化的鬧劇 --- RAM 最佳化工具的不實承諾
文章來源:Windows & .NET Magazine, April 2004
作者:Mark Russinovich

能夠重組記憶體並增進效能的工具,乍聽之下似乎不錯,但真是如此嗎?本文帶你一探記憶體最佳化工具的真章。

當您瀏覽網頁的時候,你有時候可能會看到瀏覽器跳出像是「重組你的記憶體並且增進效能」,另外還有像是「減少應用程式與系統的失敗,並且釋放沒有使用的記憶體」。如果你按下滑鼠,連結到廣告所提供的工具網站,你就會看到只要多付 9.95 美元、14.95 美元或 29.95 美元,就可以提供你達到這個目的的工具。聽起來似乎還不錯?這些工具似乎看起來可以替你做一些有用的工作,但其中的記憶體最佳化工具是沒有效果的,且更糟的是,可能會嚴重地影響效能。

你可以找到好幾十種所謂的「記憶體最佳化工具」,有些是商業軟體,有些則是一些免費軟體。你可能會想在自己的系統上執行像是這樣的產品,這些產品真正能做什麼?而這些產品是否愚弄了你,讓你相信產品所聲稱的效果?本文就讓我們深入的剖析記憶體最佳化工具的內部,看這些工具是如何控制 Windows 內部的可見記憶體計算。

@小標 記憶體最佳化工具的使用者介面

記憶體最佳化工具一般所提供的使用者介面,可以顯示可用記憶體的圖形顯示,以及以線條呈現閥值,如果記憶體低於該閥值,工具就會採取動作。另外一個線條則顯示最佳化工具在執行的時候,嘗試釋放的記憶體數量。通常你可以設定其中一個或是兩者的等級;使用手動的方式啟動記憶體最佳化或是使用排程的方式執行最佳化。某些工具則還可以顯示執行於系統上的處理程序。

當排程好的最佳化工作執行的時候,工具的可用記憶體計數器通常會往上爬升,有時候這個數字會大幅增加,讓使用者感覺這個工具實際上釋放了許多記憶體可以讓你的應用程式執行。為了瞭解這些工具實際上是如何讓可用記憶體上升的,我們必須先瞭解 Windows 管理實體記憶體的方式。

@小標 Windows 記憶體管理

與大部分目前的作業系統類似,Windows 採用了根據需求而規劃的頁次虛擬記憶體系統。作業系統使用虛擬記憶體提供應用程式一個假象,就是電腦擁有比實體記憶體更多記憶體。

在 32 位元的 Windows 系統上,處理程序可以定址虛擬記憶體達到 4GB,作業系統會在處理程序和系統之間平均的分配。因此,根據使用的量,處理程序可以配置達到 2GB 的虛擬記憶體。配置給所有處理程序的所有虛擬記憶體,不可以超過系統頁次檔案以及其大部分實體記憶體的總量(作業系統保留相當小部份的實體記憶體)。

因此針對處理程序,只要有足夠的頁次檔案,可以配置超過電腦實體記憶體能力的虛擬記憶體,Windows 記憶體管理員子系統必須在處理程序之間與快取管理員的快取檔案資料分享實體記憶體。記憶體管理員指定給每個處理程序(例如 Microsoft Word、記事本、檔案總管)一部分的實體記憶體,我們稱之為處理程序的工作集。Kernel 和驅動程式可以使用頁次的部分,除了可以使用頁次的 Kernel,記憶體緩衝區之外的部分,我們稱之為頁次集區。由快取管理員管理的實體記憶體,會指定他們自己的工作集,稱之為系統工作集。

記憶體管理員可以擴充和縮減系統和處理程序的工作集,以回應處理程序快速存取他們的程式碼和資料的需求。電腦的記憶體管理硬體,需要 Windows 管理工作集和虛擬記憶體以頁次大小區塊的方式管理(在 32 位元的 x86 處理器,頁次的大小一般是 4096 位元組,然而,作業系統和需要耗用大量記憶體的應用程式,當有可能的時候,也使用單位比較大的 4MB 頁次作為最佳化選擇)。

當處理程序存取不存在於工作集的虛擬記憶體的頁次時,處理程序會產生頁次錯誤硬體例外情況。當發生這種情況的時候,記憶體管理員會指定可以使用的實體記憶體指定頁次,以儲存新存取的資料。另外,記憶體管理員可能會決定藉由增加頁次到工作集中,擴充處理程序的工作集。然而,如果記憶體管理員需要處理程序的工作集夠大,就會使用新的頁次與已經存在於工作集的頁次進行交換,選擇取代處理程序最近所存取的頁次,這是假設處理程序最近不太可能會存取該頁次。

當記憶體管理員從處理程序工作清單移除頁次的時候,必須決定要對頁次做什麼事情。如果頁次已經修改了,記憶體管理員會先放置到修改的頁次清單,頁次的清單最後會寫到頁次檔案,或是到網頁所對應的記憶體對應檔案中。從被修改的頁次清單中,記憶體管理員會挪動頁次到名稱為待命清單的集區。沒有修改過的頁次,則會直接到待命清單中。因此,你可以將待命清單當成是資料的快取。

@小標 可以使用的記憶體

我們之前提到記憶體管理員會提供可以使用的實體記憶體頁次,給產生頁次錯誤的處理程序,但是我們還沒有說明如何定義可用的記憶體。待命清單是記憶體管理員認為是實體記憶體的一部分。其他成為可用記憶體的集區,是包含屬於配置虛擬記憶體資料的頁次(例如:包含已經離開處理程序的),另外還有已經清空,以及後續被記憶體管理員的低優先性空頁次執行緒所填入的空資料。這些類型的頁次,會分別儲存在記憶體管理員的可用清單和空頁次清單。

圖 2 顯示了發生在工作集和頁次清單之間的轉換。每一秒的時候,系統執行緒會啟動,然後呼叫記憶體管理員的工作集管理員,檢查系統和處理程序的工作集。如果可用記憶體偏低,工作集管理員會從處理程序移除在過去一秒還沒有產生的許多頁次錯誤。被移除的頁次會到被修改或待命清單中,以準備提供於可用記憶體。這種調校機制有個重要的副作用,如果系統需要提供其他處理程序記憶體,記憶體管理員就會從閒置處理程序的工作集取得頁次。這樣一來,那些處理程序的工作集最後就會消失,也就是說那些處於閒置狀況的處理程序,如果閒置時間過長,最後會沒有實體記憶體可以使用。

當處理程序需要有新的實體記憶體頁次的時候,記憶體管理員會先判斷所存取的處理程序頁次是否位於待命或修改的頁次清單。如果頁次從處理程序工作集移除,並且基於其他的目的沒有重複使用,頁次就會在這些清單中。將頁次放回到處理程序工作集,我們稱之為軟頁次錯誤,因為與硬頁次錯誤不同的是,並不會產生從磁碟讀取頁次檔案或是其他的檔案。

如果頁次不在待命清單,或是在修改的頁次清單中,記憶體管理員就會從已經有頁次的清單取得頁次,首先檢查可用的清單,然後是空頁次清單,最後則是待命清單。如果沒有記憶體可以取得,記憶體管理員就會觸發「平衡集管理員」,進行處理程序工作集的整理,並且產生三個清單的其中之一,以取得可以使用的記憶體。如果記憶體管理員必須從空頁次、可用或待命清單移除頁次以供重複使用,則決定於如何存取目標的程式碼或資料,其中包括了從頁次檔案讀取資料或可執行檔映像內容,或是建立空資料(如果應用程式配置了新的資料,而頁次並不是從空頁次清單取得)。

@小標 建立可用記憶體

在瞭解了記憶體管理員的行為之後,我們現在可以將注意力放到記憶體最佳化程式的工作上。記憶體最佳化程式所顯示的可用記憶體數據,與在工作管理員中,「效能」頁次的「實體記憶體」可用部分的值是一樣的。這個值是待命、零頁次與可用清單的總和。系統快取記憶體則是待命清單和系統工作集的總和(在 Windows NT 4.0 以及之前的版本,檔案快取的值只反應了系統工作集)。

記憶體最佳化工具藉由配置,然後釋放大量的虛擬記憶體,應用了記憶體管理員行為的優點。圖 4 顯示了記憶體最佳化工具在系統上的產生的效果。第一列顯示了在最佳化前的工作集與可用記憶體。第二列顯示了記憶體最佳化工具,藉由在短時間中增加許多的頁次錯誤,建立了高記憶體需求。為了回應這樣的需求,記憶體管理員增加了最佳化器的工作集。這個工作集的擴充發生在可用記憶體的耗用(當可用記憶體變低),使用了其他處理程序工作集的耗用。第三列顯示了在記憶體最佳化程式釋放記憶體之後的情況,記憶體管理員會移動所有指定給記憶體最佳化工具的所有頁次到可用清單,因此可以增高可用記憶體的值。大部分的最佳化器隱藏了在第一個步驟的時候可用記憶體快速降低的事實,但是如果你在最佳化的時候執行工作管理員,你經常可以看到記憶體降低的情況。

雖然取得更多可用記憶體似乎可以獲得效益,但是情況並非如此。由於記憶體最佳化工具強迫升高可用記憶體,因此也就強迫其他處理程序資料和程式碼從記憶體釋出。假設你正在執行 Word,而最佳化器強迫進行可用記憶體的升高,Word 的開啟文件文字以及程式碼在最佳化之前存在於記憶體中(也就是在實體記憶體中),必須從磁碟再次讀取,你才能繼續編輯文件。效能的降低會對伺服器造成影響,因為在待命清單以及在系統工作集中快取的檔案資料(另外還有被活動中的伺服器應用程式所使用的程式碼和資料),可能都會清除。

@小標 其他記憶體最佳化工具的宣稱

某些廠商會針對他們的記憶體最佳化工具產品作出額外的宣稱。像是你可能會看到產品能夠釋放沒有使用的處理程序所佔用的記憶體(如那些在工作列中執行的程式)。所有的這些宣稱都是不真實的,因為 Windows 會自動的清除閒置處理程序的工作集。記憶體管理員會控制所有必要的記憶體最佳化。

記憶體最佳化工具的開發人員也會宣稱他們的產品能夠對記憶體進行重組。配置的動作會釋放大量的虛擬記憶體,產生可能的副作用,進而產生連續的可用記憶體區塊。然而因為虛擬記憶體是從處理程序配置實體記憶體,處理程序無法直接從擁有虛擬記憶體獲得好處,雖然後面是連續的實體記憶體。隨著處理程序的執行及底下工作集的減少或成長,他們的虛擬記憶體對實體記憶體對應會成為斷離情況,而不管連續記憶體情況如何。

擁有連續的可用記憶體,可以在一種情況中增進效能:當記憶體管理員最大化 CPU 記憶體快取的行為,會使用稱為「頁次染色」(page coloring)的機制,判斷從可用或空頁次清單的哪個頁次,要指定給處理程序。然而,任何由於連續可用實體記憶體所得到小小效益,可能會由於程式碼與資料從記憶體被迫移出,而減損所帶來的價值。

最後,廠商通常會宣稱記憶體最佳化工具,可以重新取得記憶體記憶體遺漏的部分。這樣的說法可能所有說法中最大的錯誤。

記憶體管理員不管在任何時候,都知道實體與虛擬記憶體屬於哪個處理程序。然而如果處理程序配置了記憶體,可能會由於程式的 Bug 導致記憶體在使用後沒有釋放的情況(一般稱之為遺漏--leak),記憶體管理員無法確認所配置記憶體不會在相同點被存取,因此會一直等待,直到處理程序結束,並且釋出其所擁有的記憶體為止。

即是在不會會產生遺漏的處理程序中,記憶體管理員工作集的縮減,最後還是會從處理程序的工作集中,任何指定給遺漏虛擬記憶體的任何實體頁次取得記憶體。該處理程序會傳送遺漏頁次給頁次檔案,並且讓系統使用實體記憶體以供其他處理程序使用。因此,記憶體遺漏只會對可用實體記憶體產生有限的影響。真正的影響是在虛擬記憶體的耗用上(工作管理員稱之為 PF Usage 和 Commit Charge)。沒有工具可以對虛擬記憶體的耗用做任何事情,除非直接刪除耗用記憶體的處理程序。

@小標 假軟體

我們已經看過記憶體最佳化工具的一些說法。如果你更仔細的研究,你會發現廠商會在網站上加上一句推翻自己長久以來的宣稱—產品可能對系統的效能沒有任何影響,並且也可能會降低系統的效能。即使不知道這些產品是如何應用記憶體管理員的特性,讓記憶體的統計數能上升,一般在常識上我們可以這樣想,若記憶體最佳化工具有效,Microsoft 開發人員應該很早就會直接整合到 Kernel 部分了。



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-12-20 23:44 |
SaintChris 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x8 鮮花 x712
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我看不懂...有沒有白話文版本或是結論版?! 我看出的結論是...「超級兔子整理記憶體工具是整理假的」@@"

如果『Windows 會自動的清除閒置處理程序的工作集』,那這樣不就根本不需要釋放記憶體了嗎?!那怎麼又還會有眾多的整理記憶體程式存在呢?!而且幾乎有windows就有這種工具在...DOS時代就沒見過= ="

04年四月的文章...好舊...


獻花 x0 回到頂端 [1 樓] From:台灣數位聯合 | Posted:2005-12-21 02:22 |
clickcoey
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

唉,大部分網上可以找到的ram優化軟件我都用過,分別是........"沒",你的ram一定要夠多,我用了1g ram后明白,優化軟件是不必要的道理


獻花 x0 回到頂端 [2 樓] From:福建省 | Posted:2005-12-21 11:51 |
pkkbkraa 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
終身成就獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x6 鮮花 x1760
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

好長的文章
不過我連看都懶的看= =

關於這類型的文章已經太多了

我也曾經說過
最好是在作業系統與所需的軟體安裝好了之後
除了防毒、防火牆之外
其他的常駐程式通通給移除掉
當要使用的時候花個五秒鐘去執行它不會有什麼難的
懶的搞...開機的時候就要多花了一分鐘以上的時間...
到底什麼才叫浪費時間啊?我真搞不懂= =

還有...這是轉貼文...貼錯區了


獻花 x0 回到頂端 [3 樓] From:未知地址 | Posted:2005-12-21 11:59 |
pkkbkraa 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
終身成就獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x6 鮮花 x1760
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用SaintChris於2005-12-21 02:22發表的 :
我看不懂...有沒有白話文版本或是結論版?! 我看出的結論是...「超級兔子整理記憶體工具是整理假的」@@"

如果『Windows 會自動的清除閒置處理程序的工作集』,那這樣不就根本不需要釋放記憶體了嗎?!那怎麼又還會有眾多的整理記憶體程式存在呢?!而且幾乎有windows就有這種工具在...DOS時代就沒見過= ="

04年四月的文章...好舊...
dos以前還要宣告xms跟ems...
也算是一種啦...
不過現在的整理軟體...我覺得都是華而不實


獻花 x0 回到頂端 [4 樓] From:未知地址 | Posted:2005-12-21 12:01 |
卓越總裁
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x13
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

^^"
長篇大論的文張,看到一半就看不太下去了
不過大概知道他想表達些什麼
其實....老實說啦
這只是個心態上的問題而已
有用...多多少少會有個爽度在
內心多多少少會有個小依靠
不過要真真正正的看到效果的話
還是買大融量的記憶體才是最實在的


獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2005-12-21 12:27 |
喔耶 手機
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x41
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

那些釋放記憶體的軟體我現在都不敢用
在他釋放的時候LAG的要命
明明就是不夠用
你釋放後還是要去呼叫回來的
花點錢加裝RAM比較實際


獻花 x0 回到頂端 [6 樓] From:台灣教育部 | Posted:2005-12-21 13:35 |
SaintChris 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x8 鮮花 x712
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用pkkbkraa於2005-12-21 12:01發表的 :
dos以前還要宣告xms跟ems...

耶...有點喚起我的印象說@@" 不過那時候通常都是因為單獨程式就造成記憶體不足夠...那時候我的電腦只有4MBs... = =" 現在是1024...


獻花 x0 回到頂端 [7 樓] From:台灣數位聯合 | Posted:2005-12-21 18:59 |
any 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x33
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

記憶體最佳化
win98時效果比較好
xp就沒什麼用


獻花 x0 回到頂端 [8 樓] From:台灣中華電信 | Posted:2005-12-21 19:23 |
pkkbkraa 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
終身成就獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x6 鮮花 x1760
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用SaintChris於2005-12-21 18:59發表的 :


耶...有點喚起我的印象說@@" 不過那時候通常都是因為單獨程式就造成記憶體不足夠...那時候我的電腦只有4MBs... = =" 現在是1024...
對啊...以前記憶體貴的很= =
而快取又都是固定的...通常都不夠用
所以都要先宣告...將部份的記憶體挪成xms或是ems才能....玩遊戲XD


獻花 x0 回到頂端 [9 樓] From:台灣台灣索尼 | Posted:2005-12-21 20:05 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.021200 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言