一級快取和二級快取

2021-09-18 01:38:19 字數 1323 閱讀 3704

引自:

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

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

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

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

快取(一級快取和二級快取)

快取可以將資料儲存在記憶體中,是網際網路系統常常用到的。目前流行的快取伺服器有 mongodb redis ehcache 等。快取是在計算機記憶體上儲存的資料,讀取時無需再從磁碟讀入,因此具備快速讀取和使用的特點。和大多數持久化框架一樣,mybatis 提供了一級快取和二級快取的支援。預設情況下,...

一級快取,二級快取

首先補充下cpu的知識 cpu也就是 處理器,相當於計算機的大腦 cpu是一塊超大規模的積體電路,是一台計算機的運算核心 core 和控制核心 control unit cpu功能主要是解釋計算機指令以及處理計算機軟體中的資料 處理器主要包括運算器 算術邏輯運算單元,alu,arithmetic l...

mybatis快取 一級快取,二級快取

什麼是快取 為什麼使用快取 適用於快取的資料 二級快取的使用步驟 在主配置檔案配置 name cacheenabled value ture 讓當前的操作支援快取 在對映檔案中 select 標籤中配置 在select標籤中 新增乙個屬性 userscache true 先建立出乙個sqlsessi...