缓存机制与局部性原理
http://www.cnblogs.com/jqctop1/p/4714116.html
1. 局部性原理
? 局部性原理是指計(jì)算機(jī)在執(zhí)行某個(gè)程序時(shí),傾向于使用最近使用的數(shù)據(jù)。局部性原理有兩種表現(xiàn)形式:時(shí)間局部性和空間局部性。
? 時(shí)間局部性是指被引用過(guò)的存儲(chǔ)器位置很可能會(huì)被再次引用,例如:重復(fù)的引用一個(gè)變量時(shí)則表現(xiàn)出較好的時(shí)間局部性
? 空間局部性是指被引用過(guò)的存儲(chǔ)器位置附近的數(shù)據(jù)很可能將被引用;例如:遍歷二維數(shù)組時(shí)按行序訪問(wèn)數(shù)據(jù)元素具有較好的空間局部性
?
2. 緩存與緩沖
? 緩沖通常在接收者和發(fā)送者速度差異較大的場(chǎng)合使用,例如:網(wǎng)絡(luò)緩沖區(qū);
? 緩存通常用于補(bǔ)償不同存儲(chǔ)器之間的讀寫(xiě)速度差異,例如:Cache;
? 緩存和緩沖一個(gè)重要的區(qū)別是:對(duì)于緩沖來(lái)說(shuō),接收者接下來(lái)想要使用的數(shù)據(jù)就在緩沖區(qū)中;而緩存的有效性是依賴于局部性的,即對(duì)于緩存來(lái)說(shuō),快速存儲(chǔ)器接下來(lái)想要使用的數(shù)據(jù)不一定就在緩沖存儲(chǔ)器中。
?
3. 緩存層次結(jié)構(gòu)
??
? 如圖所示,最上層的是寄存器,最下層的是遠(yuǎn)程文件系統(tǒng),從下到上,存儲(chǔ)器的速度更快,造價(jià)更貴因而容量更小。
? 上一層的存儲(chǔ)器保存著下一層存儲(chǔ)器中部分?jǐn)?shù)據(jù)的拷貝,上一層即作為下一層的緩存;
? 當(dāng)需要第k+1層的某個(gè)數(shù)據(jù)時(shí),先在第k層中尋找,若找到,則稱為緩存命中,若沒(méi)找到,則稱為緩存不命中;
? 當(dāng)緩存不命中時(shí),需要從第k+1層拷貝需要的數(shù)據(jù)到第k層,這樣就可能會(huì)需要替換第k層中已經(jīng)緩存的某些數(shù)據(jù),需要替換時(shí)通常會(huì)有個(gè)替換策略來(lái)指導(dǎo)替換哪些數(shù)據(jù);
總結(jié)
以上是生活随笔為你收集整理的缓存机制与局部性原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: int*与(int*)的差别
- 下一篇: Struts2的配置文件——web.xm