日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

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

 

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

首先cache是緩存,buffer是緩沖,雖然翻譯有那么一個字的不同,但這不是重點。

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

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

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

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

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

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

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

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

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

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

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

要說到write cache跟write buffer?

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

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

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

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

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

正因為在寫入場合buffer跟cache沒有那么明顯的分界,所以才會有產(chǎn)生buffer跟cache究竟有啥區(qū)別的疑問。

結(jié)論

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

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

分享到:
標簽:Cache
用戶無頭像

網(wǎng)友整理

注冊時間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

運動步數(shù)有氧達人2018-06-03

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

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

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

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

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