對「緩存」的全面理解和優化

理解緩存  作業系統的任務主要是合理地調配系統的各種資源,為各種程序的運行提供環境,它可以看作是硬體和應用軟體之間的一個媒介。其中對內存的管理是系統的最主要的職責,怎麼樣使有限的內存用在刀刃上,怎麼要保證系統本身所需的內存(以防止死機,在win2000和winxp里這一點已經做的非常好了),怎樣克服各種硬體連接的瓶頸。  本文主要就這種硬體連接的瓶頸問題展開一些討論。大家知道計算機的主要硬體,硬碟,內存和處理器之間的速度是不一樣的,其中處理器的速度是非常快的,內存次之,而硬碟的速度是很慢的(相對於處理器來說),一件任務的處理要通過處理器給出的指令,把相關數據從硬碟里調出來,到內存,在內存和處理器之間還會有許多數據的傳輸,內存本身不能處理數據,要通過處理器來處理,當他們一起工作的時候,由於處理器和內存工作得快,它們常在把事做完了沒事做了,要等硬碟,這樣就大大降低了系統的整體性能,不能發揮所有硬體的性能。為了解決這個問題,一個優秀的作業系統必然要有「緩存」來作為這些硬體之間的一個中間站,來緩和這種矛盾,從而一定程度上提高系統的性能,「緩存」處理的越好,系統的性能發揮的越好。所以研究「緩存」就有了它的意義。  看了上面的內容,以前對「緩存」沒有認識的朋友應該理解它了。理解之後馬上可以應用的地方就是在自購兼容機的時候。大家大可不必去追趕潮流,買什麼P4處理器,而應該買一個快一點的硬碟,比如買個7200轉的(或更快的),以減少瓶頸的矛盾。處理器嗎,買賽揚好了,一般是沒問題的,處理器大多數時候是閒著的,有時處理很多個大任務時可能會有些緊張,注意避免就可以了。  從某種角度講,內存本身是硬碟和處理器之間的一個緩存,它的作用是緩解硬碟和處理器之間的尖銳矛盾的。當它被作為一個固定的部件後,它本身也成了需要用緩存來緩解瓶頸的對象。它對處理器和硬碟夾在中間,是他們的必經之路,硬碟與處理器之間的關係成了硬碟與內存和內存與處理器之間的雙重關係。所以上面提到的瓶頸問題的處理歸結為對內存的優化,即怎樣處理好硬碟與內存之間的緩存很處理器與內存之間的緩存。  對於一個想了解作業系統的人來說,能夠理解「緩存」對對它做適當的優化是比不可少的一節課。另外再不從一下,緩存的概念是很廣泛的,這裡專指內存的緩存。緩存的優化  作業系統本身已經有了很多優化措施,而我們只能在它的優化措施的基礎上根據我們的實際情況來優化。  1,最「著名」的緩存是頁面文件,這個倒不是緩解速度的,而是緩解容量的,在速度上,硬碟不如內存,但是容量上,內存是不可能跟硬碟比的,當你運行一個程序需要大量數據,占有大量內存時,內存就要被塞滿,怎麼辦呢?把那些暫時不用的放到硬碟里去,因為處理器總是只調用處理一個任務所需的數據,其他的準備的數據(就是那些可能要用的,但暫時還不用的)可以先放一放,如果內存放不下,就只好放到硬碟了。但是這樣做是有代價的,當放到內存的數據重新要被使用時,你就得等很長時間等系統把在硬碟中得數據調上來。其實你可以感受到系統的這些動作,比如你打開IE或Office,第一次打開是很慢的,但是關閉後馬上再打開就快很多,這是因為這時數據還沒被系統「請」出內存,系統從內存中直接取得數據自然快了;另一個情況,當你開了一個photoshop這樣的大軟體,這時打開Office要比平時還慢一點,這是因為內存本來被photoshop占領著,要調入Office的數據到內存就必須把photoshop的數據「請」出內存,多了這個過程,打開自然要慢一些。  優化頁面文件,可以做一下幾條:  1)把頁面文件放到系統盤之外,這樣做主要是為了保持頁面文件的連續性,硬碟讀取數據是*磁頭在磁性物質上「讀」得到數據的,頁面文件放在物理上的不同區域,磁頭就要跳來跳去,自然不利於效率。系統盤文件眾多,頁面文件幾乎肯定不連續。所以要把它移到其他盤。要提醒一點,當你移動好頁面文件後,要把原來的刪除掉,系統不會自動刪除。  2)如果有兩個硬碟,把頁面文件放在轉速快的那個,原因上面已講了很多遍了。  3)最大最小頁面文件的設置原則。有很多人建議將這兩個值設置成相等的,我不知道他們是那裡來的依據,其實這樣設置是不合理的。我們先要知道他們兩個值的意義。一般情況下,內存是不會真的「塞滿」,它會在內存儲量到達一定程度時自動將一部分暫時不用的數據放到硬碟,最小頁面文件是所說的「一定程度」的具體比例的決定因素,最小頁面文件大,比例就低,反之則相反;最大頁面文件是極限值,有時你開了很多程序,內存和最小頁面文件都滿了,就自動溢出到最大頁面文件。所以,將兩者設為一樣大是不合理的。最小頁面文件要小一些,這樣能夠在內存中儘可能存更多的數據,效率就高,最大頁面文件大一些,以免出現「全滿」的的情況。  4)winxp現在支持4G內存,哪怕你有5,6百M的內存,你都不需頁面文件了,這時可以把頁面文件禁掉。到註冊表編輯器HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management下,找到DisablePagingExecutive(禁用頁面文件)設其值為1。  5)在同上的註冊表編輯器位置上有個ClearPageFileAtShutdown(關機時清除頁面文件),這裡所說的「清除」頁面文件(即虛擬內存)並非是指從硬碟上完全刪除pagefile .sys這個文件,而是對其進行「清洗」和整理,從而為下次啟動Win2K更好地利用虛擬內存作好準備。這樣做還有利於安全,頁面文件上的殘留的數據是可以用特殊的工具讀到的,而這些數據你可能並不想讓人知道。這樣做的代價是關閉系統時間會加長。 將其值設為1即可。  6)學過C的朋友們應該對操作內存有個概念,一個任務完成後,要用free函數來釋放內存,但有很多軟體在設計的時候,並沒有在所有環節都這樣做,這會造成無用的數據占據內存,對這種情況可以使用一些內存優化軟體,讓這鐘軟體來完成釋放內存的動作。  2,下面介紹和優化一些不著名的緩存:  1)內存讀取硬碟數據要經過一個系統緩存(system cache),它的位置是在內存的特定區域,它是用來緩解硬碟與內存之間的速度不平衡的。它是以犧牲內存資源來換取從硬碟讀取數據時的速度的,有了這塊緩存,系統能從硬碟預讀所需的數據,減少系統等待的時間。如果你的內存很大,比如5,6百M,那麼你除了可以採取上面說的關閉頁面文件的方法外,還可以起用打的系統緩存。做法如下,進入註冊表編輯器: HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management,找到LargeSystemCache(啟用大的系統緩存),將它的值設為1就可以了。  這樣設置了後,systemcache從4M增加到8M,再win2000和winxp中,這個值是動態的,如果內存不足,systemcache占據的空間可以自動相應調整。  2)處理器從內存讀取數據的緩存是什麼呢?是二級數據高級緩存(緩衝),同樣它也要在內存中占一個空間,所以最好是有了大內存之後再設置這個值。也需再註冊表里設置,方法如下:進入 HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management ,找到 SecondLevelDataCache,默認為256,大內存設為512。  好了經過了上面的介紹,我想對朋友們來說最重要收穫的是加深了對緩存和作業系統的認識,至於優化的方法,我得承認一般的朋友是用不著去做的,當然「玩」一下也是很有意思的

相關文章

  1. ob緩存的使用理解

    ob緩存的使用理解 工具/原料 PHP 方法/步驟 1.需要先了解三個緩存:瀏覽器緩存.程序緩存.ob緩存 a. 瀏覽器緩存:當伺服器端的數據響應給瀏覽器之後,瀏覽器並不會立即的將數據直接輸出顯示,一 ...
  2. 對php之apc緩存的理解(2)

    public function set_cache($key, $value, $time = 0) { if ($time == 0) $time = null; //null情況下永久緩存 ret ...
  3. 如何清理垃圾緩存多餘文件 優化手機內存

    不少安卓手機用戶都在為手機的運行速度而煩惱,手機卡.運行慢,成了較為關注的手機問題.今天就教大家一個實用方法,讓你的手機速度快起來,更多的內存釋放出來! 下面就為大家簡單描述一下操作步驟: 工具/原料 ...
  4. 傳授對Win7系統磁碟緩存空間進行合理優化技巧

    一般情況下,Windows系統會自動設定使用最大內存作為磁碟緩存.這時,如果其他用戶程序向Windows申請內存空間,系統才會釋放部分內存給其他程序運行,因此用戶有必要對磁碟緩存空間進行合理優化,這樣 ...
  5. 手機卸載殘留,緩存清理,手機優化教程。

    手機用太久就會出現很卡,反應遲鈍,死機的現象,那是因為手機在使用過程中下載產生了很多的數據信息,大部分都是一些垃圾信息,比如廣告.緩存等,那要如何清理這些垃圾呢? 工具/原料 軟體 方法/步驟 百度搜 ...
  6. 解析Win7系統磁碟緩存空間進行合理優化技巧

    一般情況下,Windows系統會自動設定使用最大內存作為磁碟緩存.這時,如果其他用戶程序向Windows申請內存空間,系統才會釋放部分內存給其他程序運行,因此用戶有必要對磁碟緩存空間進行合理優化,這樣 ...
  7. 用Windows優化大師進行Windows XP磁碟緩存優化

    在很多時候,磁碟系統的性能可能會成為影響電腦性能的主要瓶頸.用戶可以使用Windows優化大師對磁碟系統的性能進行優化,從而提升電腦系統的整體性能. Windows XP系統的磁碟緩存對系統的運行起著 ...
  8. 淘站緩存優化方案拒絕API使用超限

    該經驗適合廣大API淘站遇見流量高峰期時,給出較為合理的緩存方案. 工具/原料 語言環境必須是IIS+PHP. 步驟/方法 自動定時為一周清除該子文件夾所有緩存文件: 超過5M子文件夾大小清除該子文件 ...
  9. 系統臨時文件ie緩存等的優化設置

    系統在使用一段時間後C盤空間變小了,有人說我沒有安裝和存放東西進去呀,怎麼會這樣呢,其實就是系統運行時產生的臨時文件緩存等造成的,我們可以通過更改路徑使它存放到其他盤. 步驟/方法 右鍵我的電腦-屬性 ...
  10. Windows優化大師之磁碟緩存優化

    在不同的作業系統(Windows98/2000/XP/2003/Vista)下,Windows優化大師將自動識別作業系統後,向用戶提供適合當前作業系統的選項. 方法/步驟 Windows2000/XP ...
  11. 對Win7系統磁碟緩存空間進行合理優化

    一般情況下,Windows系統會自動設定使用最大內存作為磁碟緩存.這時,如果其他用戶程序向Windows申請內存空間,系統才會釋放部分內存給其他程序運行,因此用戶有必要對磁碟緩存空間進行合理優化,這樣 ...
  12. 如何利用360極速瀏覽器優化內存和緩存

    瀏覽器打開過多的網頁時,往往會變得非常卡.而如果使用360安全衛士一鍵加速,往往會將網頁關閉.但是關閉後的網頁自己還需要重新打開,還會遇到同樣的問題.那麼如何藉助360極速瀏覽器自帶的加速器,既能節省 ...
  13. IIS7性能優化:啟用瀏覽器本地緩存

    本文介紹如何在IIS7中配置http響應標頭,實現瀏覽器本地緩存.最新的瀏覽器(如IE .Chrome等)都支持本地緩存.當請求的資源在瀏覽器本地緩存後,以後再次請求這些資源就可以直接從瀏覽器本地緩存 ...
  14. 《NBA 2K12》提高幀數+清理緩存加遊戲優化策略

    nba2k13中文版是一款飽受籃球迷熱愛的體育競技類遊戲,從1999年開始, NBA 2K系列是對Sega Dreamcast的獨家新聞. 此系列由Sega最初發行,在Sega體育之下並且由" ...
  15. win7中設置緩存邏輯優化硬碟,提高運行速度?

    電腦的硬碟是電腦運行速度快慢的主要因素,想我們優化的重點也會放硬碟上,下面小編教大家如何加快運行速度. 工具/原料 win7 方法/步驟 在計算機上右鍵點擊 管理 然後點擊設備管理器,展開磁碟驅動器. ...
  16. 提高系統運行速度之優化CPU的二級緩存

    為了充分發揮CPU的性能,達到最佳效果,提高系統運行速度,可在註冊表中修改默認的CPU二級緩存值,使其與實際所用的值相同.具體步驟如下: 方法/步驟 Windows XP系統點擊"開始&qu ...
  17. 怎麼樣為手機優化內存、清理緩存垃圾文件

    手機運行緩慢反應遲鈍,是手機優化程度不夠或者垃圾文件過多造成的.尤其是智慧型手機的普及日益增長的情況下,智慧型手機功能較多,程序軟體使用較為廣泛,僅僅後台就會同時運作多種程序.而手動關閉程序往往只是表面上 ...
  18. 如何深度理解並使用MySQL中的性能優化2?

    如何深度理解並使用MySQL中的性能優化2? 工具/原料 pc mysql 方法/步驟 WIN+R輸入入cmd 進入控制台 輸入 mysql -uroot -proot 回車 如圖,成功進入MySQL ...
  19. 如何深度理解並使用MySQL中的性能優化?

    如何深度理解並使用MySQL中的性能優化? 工具/原料 MySQL pc 方法/步驟 WIN+R輸入入cmd 進入控制台 輸入 mysql -uroot -proot 回車 如圖,成功進入MySQL: ...
  20. 如何深度理解並使用MySQL中的性能優化3?

    如何深度理解並使用MySQL中的性能優化3? 工具/原料 pc mysql 方法/步驟 WIN+R輸入入cmd 進入控制台 輸入 mysql -uroot -proot 回車 如圖,成功進入MySQL ...