快取的概念

2021-08-16 10:42:02 字數 2055 閱讀 5723

網上整理的資料
1、快取的概念

許多人認為,「快取」是記憶體的一部分 

許多技術文章都是這樣教授的

但是還是有很多人不知道快取在什麼地方,快取是做什麼用的

其實,快取是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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了

2、快取的幾個基本術語

①命中(命中率):

當客戶發起乙個請求(我們說他想要檢視乙個產品資訊),我們的應用接受這個請求,並且如果是在第一次檢查快取的時候,快取中沒有這個資料,那麼就需要去資料庫讀取產品資訊,這個稱為快取命中。命中率,就是100次訪問請求100條資料,在快取中可以得到的有80條資料,那麼這個時候快取命中率就是80%。

需要注意如下兩點:

如果還有快取的空間,那麼,沒有命中的物件會被儲存到快取中來。如果快取滿了,而又沒有命中快取,那麼就會按照某一種策略,把快取中的舊物件剔除,而把新的物件加入快取池。而這些策略統稱為替代策略(也就是快取演算法),這些策略(快取演算法)會決定到底應該剔除哪些物件。

3、儲存成本:

當沒有命中時,我們會從資料庫中取出資料,然後放入快取。而把這個資料放入快取所需要的時間和空間,就是儲存成本。

4、失效:

當存在快取中的資料需要更新時,就一位著快取中的這個資料失效了。

5、替代策略(快取演算法)

當快取沒有命中時,並且快取容量已經滿了,就需要在快取中剔除乙個老的資料(根據剔除策略的不同指代不同的資料),加入一條新的資料條目。那麼到底應該剔除什麼資料條目,就由替代策略來決定,

快取的概念

許多人認為,快取 是記憶體的一部分 許多技術文章都是這樣教授的 但是還是有很多人不知道快取在什麼地方,快取是做什麼用的 其實,快取是cpu的一部分,它存在於cpu中 cpu訪問資料的速度非常的快,一秒鐘能夠訪問 處理十億條指令和資料 術語 cpu主頻1g 而記憶體就慢很多,快的記憶體能夠達到幾十兆就...

基本快取概念

1 客戶端快取 標籤,這是進行頁面快取最基本的方法。1 2 傳送到瀏覽器的html頁面中的meta標籤告訴瀏覽器頁面的快取時間以及是否啟用快取等,programa no cache內容並不是保證,但大多數瀏覽器都遵從這個約定。更好的方法是使用header函式,傳送http頭。1 2header ex...

快取概念(一)

一般情況下,乙個 或者乙個應用,它的一般形式是 瀏覽器請求應用伺服器,應用伺服器做一堆計算後再請求資料庫,資料庫收到請求後再作一堆計算後把資料返回給應用伺服器,應用伺服器再作一堆計算後把資料返回給瀏覽器。這個是乙個標準流程.但是隨著互連網的普及,上網的人越來越多,網上的資訊量也越來越多,一般的劃分方...