亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Cache 和 Buffer 都是緩存,主要區(qū)別是什么?

 

提到這個(gè)問題,可能意味著題主意識(shí)到了兩者的相關(guān)性。的確,他們確實(shí)有那么一些聯(lián)系。

首先cache是緩存,buffer是緩沖,雖然翻譯有那么一個(gè)字的不同,但這不是重點(diǎn)。

個(gè)人認(rèn)為他們最直觀的區(qū)別在于cache是隨機(jī)訪問,buffer往往是順序訪問。雖然這樣說并沒有直擊本質(zhì),不過我們可以待分析完畢之后再來討論真正的本質(zhì)。

為了說明這個(gè)問題,讓我將他們分開來說:read cache(讀緩存),read buffer(讀緩沖),write cache(寫緩存),write buffer(寫緩沖)。

無論緩存還是緩沖,其實(shí)本質(zhì)上解決的都是讀寫速度不匹配的問題,從這個(gè)角度,他們非常相似。

首先討論讀緩存跟讀緩沖。

讀緩存跟讀緩沖的最大區(qū)別在于,讀緩存的目標(biāo)數(shù)據(jù)是始終有效的,如果不從緩存中讀取,也可以直接讀取實(shí)際數(shù)據(jù),只不過實(shí)際數(shù)據(jù)讀取會(huì)慢一些,當(dāng)這個(gè)數(shù)據(jù)在緩存中,讀取速度將會(huì)變快。

當(dāng)一個(gè)緩存中的數(shù)據(jù)被多次讀取,實(shí)際上就減少了該數(shù)據(jù)從慢速設(shè)備中讀取的量,這就存在某種算法去選擇「什么數(shù)據(jù)需要保存在cache中」,因?yàn)楸M可能多的讓cache命中能提高性能。

先進(jìn)入cache的數(shù)據(jù)不一定先被讀取,甚至說進(jìn)入cache的數(shù)據(jù)有可能永遠(yuǎn)不被讀取就被清除了,因此read cache呈現(xiàn)出非常明顯的隨機(jī)訪問特性。

而讀緩沖buffer的數(shù)據(jù)則不是始終有效,而是實(shí)時(shí)生成的數(shù)據(jù)流,每當(dāng)buffer滿或者主動(dòng)flush buffer的時(shí)候觸發(fā)一次讀取,對于小數(shù)據(jù),這樣可以減少讀取次數(shù),對于大數(shù)據(jù),這可以控制單次讀取的數(shù)據(jù)量。

換句話說,無論數(shù)據(jù)量大還是小,單次讀取數(shù)據(jù)量都按照buffer尺寸進(jìn)行歸一化了。通常來說,先喂給buffer的數(shù)據(jù)一定會(huì)先被讀取,所有buffer的數(shù)據(jù)幾乎一定會(huì)被讀取,這是很明顯的順序訪問特性。

從上面的情況看到,讀緩存以及讀緩沖很明確的反應(yīng)出了我所說的表面特性。而其本質(zhì)特性在于cache的目標(biāo)是減少讀取總量每次cache命中都減小了讀取總量。

而buffer并不能減少讀取總量,只能規(guī)整化每次讀取數(shù)據(jù)的尺寸大小。

要說到write cache跟write buffer?

我們先說write buffer,write buffer是read buffer的對應(yīng),對于小數(shù)據(jù)的寫入,它需要填滿write buffer再進(jìn)行一次寫入,對于大數(shù)據(jù),大數(shù)據(jù)會(huì)被分割到buffer尺寸的大小分批寫入。

因此,write buffer 的用處在于使得每次寫入的數(shù)據(jù)量相對固定。如果一次寫入4k對某個(gè)設(shè)備來說效率最高,那么把buffer定為4k,小數(shù)據(jù)積攢到4k寫一次,大數(shù)據(jù)分割到每個(gè)碎片4k多次寫入,這樣就是write buffer的用處。

最后我們來說write cache。所謂write cache,就是要設(shè)法減少寫入次數(shù)。也就是說,如果某些數(shù)據(jù)需要產(chǎn)生多次寫入,那么使用cache就可以只將最終數(shù)據(jù)寫入,導(dǎo)致最終寫入數(shù)據(jù)減少。

在實(shí)際應(yīng)用中,我們有時(shí)會(huì)使用到write buffer跟write cache的合體形態(tài)。buffer本身需要規(guī)整尺寸,與此同時(shí),buffer還允許多次隨機(jī)寫入,使得多次寫入的數(shù)據(jù)只用寫入最后一次,這屬于cache的特性。

BT軟件使用的寫緩存往往具有類似特性,因而這種形態(tài)它同時(shí)既是buffer又是cache。

正因?yàn)樵趯懭雸龊蟗uffer跟cache沒有那么明顯的分界,所以才會(huì)有產(chǎn)生buffer跟cache究竟有啥區(qū)別的疑問。

結(jié)論

在read(讀取)的場合,cache通常被用于減少重復(fù)讀取數(shù)據(jù)時(shí)的開銷,而buffer則用于規(guī)整化每次讀取數(shù)據(jù)的尺寸,在讀取場合兩者用途差別很大。

在write(寫入)的場合,兩者功能依然沒變,但由于cache跟buffer的功能在寫入場合可以融合使用,所以兩者可以被混淆,寫入緩沖跟寫入緩存往往會(huì)同時(shí)擔(dān)當(dāng)規(guī)整化寫入尺寸以及減少寫入次數(shù)的功能,所以兩者有時(shí)會(huì)被混淆,但這只是個(gè)名稱問題,沒有原則性關(guān)系。

分享到:
標(biāo)簽:Cache
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定