內存緩存系統
❶ 什麼是系統緩存
分類: 電腦/網路 >> 操作系統/系統故障
解析:
要知道什麼是系統緩存,你首先要知道計算機內部各個存儲器存取速度的快慢。比如:從內存中讀取數據要遠快於從硬碟中讀取數據。簡單地講,緩存就是用來存儲一些常用或即將用到的數據或指令,當需要這些數據或指令的時候直接從緩存中讀取,這樣比直接從內存或者硬碟中讀取數據要快的多。你可以把緩存理解成預存。
另外還有二級緩存。就是處理器緩存。或者叫高速緩沖存儲器。是位於CPU和主存儲器DRAM(Dynamic RAM)之間的規模較小的但速度很高的存儲器,通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴於速度較慢的DRAM(動態隨機存儲器)。二級高速緩存一直都屬於速度極快而價格也相當昂貴的一類內存,稱為SRAM(靜態RAM),SRAM(Static RAM)是靜態存儲器的英文縮寫。由於SRAM採用了與製作CPU相同的半導體工藝,因此與動態存儲器DRAM比較,SRAM的存取速度快,但體積較大,價格較高。
簡單的說。就這些。如果不明白你可以留言給我。
❷ 內存和緩存的區別
兩者都用於暫時儲存數據,沒有電壓時數據都會丟失,這是共同點;
不同點:內存一般加工成內存條,後期安裝到主板上,可插拔;緩存一般焊接在主板上,或者集成在CPU中。這是表面的差別。
實質上的差別:內存存儲單元為動態存儲結構,緩存為靜態存結構。前者結構簡單,但數據寫入後會因電荷泄漏很快丟失,因此CPU必須不停地在數據完全失去之前將數據再一次寫入,周而復始;而靜態的正好相反,結構復雜,但一次寫入後,除非改寫,數據不會丟失(斷電除外)。省略了反復寫入的過程,得到的結果就是寫入、讀出的速度大大加快,所以,緩存是個值得關注的東東。
CPU緩存 (Cache Memoney)位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個 內存儲器 (緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。
最早先的 CPU緩存 是個整體的,而且容量很低, 英特爾 公司從 Pentium 時代開始把緩存進行了分類。當時集成在 CPU內核 中的緩存已不足以滿足CPU的需求,而製造工藝上的限制又不能大幅度提高緩存的容量。因此出現了集成在與CPU同一塊電路板上或主板上的緩存,此時就把 CPU內核 集成的緩存稱為一級緩存,而外部的稱為二級緩存。一級緩存中還分數據緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數據和執行這些數據的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。 英特爾 公司在推出 Pentium 4處理器時,還新增了一種一級追蹤緩存,容量為12KB.
隨著 CPU製造工藝 的發展,二級緩存也能輕易的集成在 CPU內核 中,容量也在逐年提升。現在再用集成在CPU內部與否來定義一、二級緩存,已不確切。而且隨著二級緩存被集成入CPU內核中,以往二級緩存與CPU大差距分頻的情況也被改變,此時其以相同於主頻的速度工作,可以為CPU提供更高的 傳輸速度 。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說 CPU一級緩存 中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由於不能准確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那麼還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。目前的較高端的CPU中,還會帶有 三級緩存 ,它是為讀取二級緩存後未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內容應該按一定的演算法替換。一種較常用的演算法是「最近最少使用演算法」(LRU演算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU演算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁調用後再不需要的數據淘汰出緩存,提高緩存的利用率。
CPU產品中,一級緩存的容量基本在4KB到64KB之間,二級緩存的容量則分為128KB、256KB、512KB、1MB、2MB等。一級緩存容量各產品之間相差不大,而二級緩存容量則是提高CPU性能的關鍵。二級緩存容量的提升是由CPU製造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上集成更大的緩存,對製造工藝的要求也就越高。
❸ 緩存系統中的主要使用的數據結構是什麼
緩存系統中的主要使用的數據結構是memcached。
memcached是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但被許多網站使用。這是一套開放源代碼軟體,以BSD license授權發布。
memcached的API使用三十二比特的循環冗餘校驗(CRC-32)計算鍵值後,將數據分散在不同的機器上。當表格滿了以後,接下來新增的數據會以LRU機制替換掉。
由於memcached通常只是當作緩存系統使用,所以使用memcached的應用程序在寫回較慢的系統時(像是後端的資料庫)需要額外的代碼更新memcached內的數據。
(3)內存緩存系統擴展閱讀:
一、存儲方式
為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。由於數據僅存在於內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。
另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的緩存。memcached本身是為緩存而設計的伺服器,因此並沒有過多考慮數據的永久性問題。
二、通信分布式
memcached盡管是「分布式」緩存伺服器,但伺服器端並沒有分布式功能。各個memcached不會互相通信以共享信息。那麼,怎樣進行分布式呢?這完全取決於客戶端的實現。本文也將介紹memcached的分布式。
❹ windows內存緩存影響
1.1 緩存管理器介於內存管理器(VMM)和文件系統驅動程序(FS)之間,它包含一組以"Cc"打頭的內核模式函數,全局變數,以及一些系統線程.
1.2 緩存管理器(CM)以虛擬塊(Virtual Block)為基礎來緩存數據,
這使得可以在不涉及文件系統驅動程序的情況下進行智能預讀((Read_Ahead)和延遲(Lazy_Write)
1.3 Windows緩存管理器使用一種稱為虛擬塊緩存(virtual Block caching)的方法,它跟蹤,記錄了哪些文件的哪些部分位於緩存中.
1.4 在intel x86系統中,系統默認的緩存大小為512MB,地址范圍是0xc1000000--0xe100000
2.緩存管理器ring read and write operation
2.1 讀的操作.
大致的過程如下,從I/O管理器發出一個read的IRP開始,然後是到文件系統驅動程序,然後是緩存管理器,再然後是虛擬內存管理器.
中間需要進行兩個判斷,1.緩存管理器是否將文件緩存到系統緩存中? 2,是否產生頁錯誤?
2.2 寫操作和讀操作類似,見下圖.
3.Cache Manager Interface
3.1 文件流(File Stream) 操作函數(
使文件映射到系統緩存中.
@ CcInitializeCacheMap()
@ CcSetFileSize()
@ CcFlushCache()
@ CcZeroData()
@ ()
@ ......
3.2 文件系統介面
一旦一個文件已經被建立起緩存方式的訪問環境,文件系統驅動程序就調用幾個函數中的某一個來訪問文件中的數據.
要訪問被緩存的數據,可以通過下面三種主要的方法:
❺ 什麼是系統緩存
許多人認為,「緩存」是內存的一部分
許多技術文章都是這樣教授的
但是還是有很多人不知道緩存在什麼地方,緩存是做什麼用的
其實,緩存是cpu的一部分,它存在於cpu中
cpu存取數據的速度非常的快,一秒鍾能夠存取、處理十億條指令和數據(術語:cpu主頻1g),而內存就慢很多,快的內存能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大
緩存是為了解決cpu速度和內存速度的速度差異問題
內存中被cpu訪問最頻繁的數據和指令被復制入cpu中的緩存,這樣cpu就可以不經常到象「蝸牛」一樣慢的內存中去取數據了,cpu只要到緩存中去取就行了,而緩存的速度要比內存快很多
這里要特別指出的是:
1.因為緩存只是內存中少部分數據的復製品,所以cpu到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存復制到緩存中去),這時cpu還是會到內存中去找數據,這樣系統的速度就慢下來了,不過cpu會把這些數據復制到緩存中去,以便下一次不要再到內存中去取。
2.因為隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,現在又不頻繁了,所以說緩存中的數據要經常按照一定的演算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的
3.關於一級緩存和二級緩存
為了分清這兩個概念,我們先了解一下ram
ram和rom相對的,ram是掉電以後,其中才信息就消失那一種,rom在掉電以後信息也不會消失那一種
ram又分兩種,
一種是靜態ram,sram;一種是動態ram,dram。前者的存儲速度要比後者快得多,我們現在使用的內存一般都是動態ram。
有的菜鳥就說了,為了增加系統的速度,把緩存擴大不就行了嗎,擴大的越大,緩存的數據越多,系統不就越快了嗎
緩存通常都是靜態ram,速度是非常的快,
但是靜態ram集成度低(存儲相同的數據,靜態ram的體積是動態ram的6倍),
價格高(同容量的靜態ram是動態ram的四倍),
由此可見,擴大靜態ram作為緩存是一個非常愚蠢的行為,
但是為了提高系統的性能和速度,我們必須要擴大緩存,
這樣就有了一個折中的方法,不擴大原來的靜態ram緩存,而是增加一些高速動態ram做為緩存,
這些高速動態ram速度要比常規動態ram快,但比原來的靜態ram緩存慢,
我們把原來的靜態ram緩存叫一級緩存,而把後來增加的動態ram叫二級緩存。
一級緩存和二級緩存中的內容都是內存中訪問頻率高的數據的復製品(映射),它們的存在都是為了減少高速cpu對慢速內存的訪問。
通常cpu找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,如果還找不到就只有到內存中找了
以上技術文章原創於私人網站海市蜃樓
網路實名:海市蜃樓
❻ 緩存、內存、快閃記憶體的區別分別指什麼樣的東西
一、主體不同
1、緩存:是指訪問速度比一般隨機存取存儲器(RAM)快的一種高速存儲器
2、內存:是計算機中重要的部件之一,它是外存與CPU進行溝通的橋梁。
3、快閃記憶體:一種電子式可清除程序化只讀存儲器的形式,允許在操作中被多次擦或寫的存儲器。
二、特點不同
1、緩存:不像系統主存那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術。
2、內存:內存的運行也決定了計算機的穩定運行。內存條是由內存晶元、電路板、金手指等部分組成的。
3、快閃記憶體:是一種特殊的、以宏塊抹寫的EPROM。快閃記憶體進行一次抹除,就會清除掉整顆晶元上的數據。
三、作用不同
1、緩存:可以進行高速數據交換的存儲器,它先於內存與CPU交換數據,因此速率很快。
2、內存:作用是用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。
3、快閃記憶體:是一種非易失性存儲器,即斷電數據也不會丟失。因為快閃記憶體不像RAM(隨機存取存儲器)一樣以位元組為單位改寫數據,因此不能取代RAM。
❼ 系統緩存是什麼意思
問題一:系統緩存到底是什麼意思 在電腦系統中,硬體運行速度的快慢基本由緩存決定,緩存的容量越大,相應的硬體運行速度也就越快。緩存的應用幾乎遍及所有的硬體, 比如CPU、硬碟、刻錄機等,甚至是軟體也有緩存。什麼是緩存?簡單來說緩存就是數據交換的緩沖區(稱作Cache),當某一硬體要讀取數據時, 會首先從緩存中查找需要的數據,如果找到了則直接執行,找不到的話則從內存中找。由於緩存的運行速度比內存快得多,故緩存的作用就是 幫助硬體更快地運行
問題二:手機里的應用緩存和系統緩存是啥意思 可以清除嗎 可以,都是看過的視頻啊新聞啊留下的垃圾文件,
問題三:手機系統緩存和應用緩存有什麼區別 您好,手機系統緩存指的是手機自帶的系統軟體佔用的緩存;應用緩存指的是應用軟體佔用的緩存。
問題四:什麼是緩存?什麼是系統緩存? 緩存就是用來加速軟體運行的存儲。如由於硬碟速度比內存慢因此運算需要經常用到的東西放到內存中做緩存。資料庫中的常用數據如代碼表,可以先從資料庫讀出來,放到應用伺服器端的緩存軟體中作為緩存加快應用伺服器讀取速度。
緩存是一張非常常用的性能優化方法。常用緩存軟體有ehcache,memcache,redis等
問題五:手機里的緩存可以全部清理嗎?什麼叫系統緩存 系統緩存是可以清理的,就像是打開網頁,會提示載入,那就是緩存。
手機黨,望採納
問題六:這上面的「後台服務」和「系統緩存」分別是什麼意思啊 系統緩存可以分為1級和2級緩存.英文叫CACHE.它的最主要的作用就是來調節低速CPU和高度內存之間的矛盾.起平衡減少沖突可以增加使用壽命和加快電腦運行速度.一般來說.2級緩存越高越好.
後台服務又叫做電腦後台.運行後在電腦上顯示不出來必須有熱鍵才能顯示出.電腦分為前台和後台.前台就是你可以看到的桌面了游戲了QQ了之類的東西.而後台的東西你就看不見了.只有你知道的命令才可以把它顯示出來.比方說你在玩些游戲.但突然父母或者老闆來了.你就可以把它藏到後台運行.但並不是關閉.只是暫時看不到而且繼撫運行.實際上電腦的任務管理器上面顯示的進程數一般為26左右.其實在後台還有10幾個任務在進行.只是看不到而已.
後台和緩存設置好了都可以增加電腦速度.
問題七:硬碟的緩存是什麼意思?有什麼用? 什麼是緩存檔: 在電腦系統中,硬體運行速度的快慢基本由緩存決定,緩存的容量越大,相應的硬體運行速度也就越快。緩存的應用幾乎遍及所有的硬體,比如CPU、硬碟、刻錄機等,甚至是軟體也有緩存。什麼是緩存?簡單來說緩存就是數據交換的緩沖區(稱作Cache),當某一硬體要讀取數據時,會首先從緩存中查找需要的數據,如果找到了則直接執行,找不到的話則從內存中找。由於緩存的運行速度比內存快得多,故緩存的作用就是幫助硬體更快地運行,因此,我們要不惜使出一切手段來增加硬體的緩存,讓機器「飛」起來,以下就介紹幾種增加緩存的方法。 CPU的緩存 CPU的緩存分二級:L1(一級緩存)和L2(二級緩存),當處理器要讀取數據時,首先要在L1緩存中查找,其次才是L2緩存,最後才是系統內存。如果有一天你發覺自己的電腦慢了很多,進入到Windows桌面也要幾分鍾,這時候就要檢查一下CPU的一、二級緩存有沒有打開。在BIOS設置中的Standard CMOS Setup(標准CMOS設定)有兩項是用來打開或關閉緩存的:CPUInternal Cache設為Enable時開啟CPU內部的一級緩沖區,若設置為Disabl則為關閉,這時系統性能將大大降低;ExternalCache選項是控制主板上二級緩沖區,如果主板上有二級緩存則應設成Enable。 硬碟的緩存 點擊電腦桌面上的「開始」/「運行」,鍵入「Msconfig」啟動「系統配置實用程序」,跟著選中「system.ini」標簽下的「Vcache」項,就可以根據系統的實際情況來調節硬碟的緩存了。在該選項中一般會有三行內容:ChunkSize=1024、MaxFileCache=10240和MinFileCache=10240;其中第一行是緩沖區讀寫單元值,第二、三行是硬碟的最大和最小緩沖值,等號後的數值都是可以修改的,只要右鍵單擊選中任一行就可以進行修改了。如果你的內存是128MB的話,上面這三行的取值就比較合理了,當然也可以自定。如果不知道該如何設置合適的緩沖值,請「Windows優化大師」幫忙吧,這個軟體中有一個「磁碟緩存優化」項,用滑鼠就可以方便地設置好緩存;又或者讓「Windows優化大師」自動幫你進行優化設置。當硬碟的緩存值足夠大時,硬碟就不用頻繁地讀寫磁碟,一來可以延長硬碟的壽命,二來也可以提高數據的傳輸速度。 另外,將硬碟的「文件系統緩存」設置為「網路伺服器」,可以加快系統對硬碟的訪問速度,因為文件系統緩存里存放了硬碟最近被訪問過的文件名和路徑,緩存越大所能儲存的內容也就越多。如果點擊「控制面板」/「系統」/「性能」/「文件系統」/「硬碟」,將「此計算機的主要用途」由「台式機」改為「網路伺服器」,可以將原來10K左右的緩存增加至近50K左右。 軟碟機和光碟機的緩存 一般來說,軟碟機讀寫數據的速度都比較慢,這是因為碟片的轉速不能太高,但是,我們可以提高軟碟機的讀寫緩存,讓軟碟機一次讀寫更多的數據。方法是:在桌面上的「開始」/「運行」框中鍵入「Regedit」運行注冊表編輯器,依次進入HKEY-LOCAL-MACHINE\System\CurrentControlSet\Services\Class\FDC\0000,新建一個為ForeFifo的「DWORD值」,將其值設為「0」,這樣就對軟碟機進行了軟提速。 很多人都知道右鍵單擊桌面「我的電腦」圖標,選「屬性」/「性能」/「文件系統」/「CD-ROM」,將最佳的訪問方式設為「四倍速或更高速」,將追加的高速緩存大小滑塊拖到最大處,可以明顯提高光碟機的讀盤速度。除了這種方式,我們還可以在注冊......>>
問題八:手機系統緩存刪除的是什麼 簡單的說
比如:
手機裡面的java小程序或者游戲什麼的,你玩了後,沒去關閉,然後就退出來了,那些小游戲實際還是佔用內存的。
親歷緩存就清理這些你打開而沒有正確關閉的程序。
問題九:CPU的緩存是什麼意思啊 緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。
L1 Cache(一級緩存)是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32―256KB。
L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,現在家庭用CPU容量最大的是512KB,而伺服器和工作站上用CPU的L2高速緩存更高達256-1MB,有的高達2MB或者3MB。
L3 Cache(三級緩存),分為兩種,早期的是外置,現在的都是內置的。而它的實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。而在伺服器領域增加L3緩存在性能方面仍然有顯著的提升。比方具有較大L3緩存的配置利用物理內存會更有效,故它比較慢的磁碟I/O子系統可以處理更多的數據請求。具有較大L3緩存的處理器提供更有效的文件系統緩存行為及較短消息和處理器隊列長度。 jz5u
其實最早的L3緩存被應用在AMD發布的K6-III處理器上,當時的L3緩存受限於製造工藝,並沒有被集成進晶元內部,而是集成在主板上。在只能夠和系統匯流排頻率同步的L3緩存同主內存其實差不了多少。後來使用L3緩存的是英特爾為伺服器市場所推出的Itanium處理器。接著就是P4EE和至強MP。Intel還打算推出一款9MB L3緩存的Itanium2處理器,和以後24MB L3緩存的雙核心Itanium2處理器。
但基本上L3緩存對處理器的性能提高顯得不是很重要,比方配備1MB L3緩存的Xeon MP處理器卻仍然不是Opteron的對手,由此可見前端匯流排的增加,要比緩存增加帶來更有效的性能提升。
❽ 系統緩存是什麼來的有何作用
分類: 電腦/網路 >> 操作系統/系統故障
解析:
理解緩存
操作系統的任務主要是合理地調配系統的各種資源,為各種程序的運行提供環境,它可以看作是硬體和應用軟體之間的一個媒介。其中對內存的管理是系統的最主要的職責,怎麼樣使有限的內存用在刀刃上,怎麼要保證系統本身所需的內存(以防止死機,在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。
好了經過了上面的介紹,我想對朋友們來說最重要收獲的是加深了對緩存和操作系統的認識,至於優化的方法,我得承認一般的朋友是用不著去做的,當然「玩」一下也是很有意思的。