Cache(快取)和Buffer(緩衝)

2021-09-20 19:44:08 字數 622 閱讀 3392

什麼是快取、快取區?

cache(快取)是「讀」資料時在記憶體的一種優化技術。

快取區就是占用記憶體中的一塊區域來做程序的資料快取,比如web服務,當使用者第一次請求時,程序會從磁碟(硬碟)中拿資料(結果),將結果儲存到快取區,當第二次該使用者發起同樣的請求時,則程序會在快取區中匹配已經快取的結果,直接返回資料。記憶體的讀寫效率是磁碟的10倍以上。所以該技術增加了程序處理資料的效率,並降低了磁碟io的使用。

什麼是緩衝、緩衝區?

buffer(緩衝)是「寫」資料時在記憶體的一種優化技術。

緩衝區就是占用記憶體中的一塊區域來做程序的資料緩衝,比如上傳乙個資料(檔案),資料由程序處理,程序呼叫記憶體持續性的將資料寫入磁碟,資料在記憶體中會被分成大小不均勻的資訊資料塊持續性的寫入磁碟,這種寫入磁碟的方式執行效率比較慢,而且因為大小不均會導致磁碟碎片。而buffer則是對這些大小不均勻的資訊資料塊流量整形的一項技術,這些資料塊首先會存入緩衝區,等待積累的多個資料塊佔滿整個緩衝區大小時,然後從緩衝區寫入到磁碟中。所以一般情況下乙個緩衝區大小等於系統的分頁大小。

系統的分頁大小則就是磁碟的檔案系統的儲存塊大小。如果是windows系統一般我們在格式化的時候可以看到,即「分配單元大小」。如果是linux則可以通過「getconf page_size」命令檢視。

Buffer緩衝和Cache快取的區別

buffer與cache操作的物件不一樣。buffer 緩衝 是為了提高記憶體和硬碟 或其他i 0裝置 之間的資料交換的速度而設計的。cache 快取 是為了提高cpu和記憶體之間的資料交換速度而設計,也就是平常見到的一級快取 二級快取 快取 也叫記憶體快取 cpu在執行程式所用的指令和讀資料都是針...

Cache和Buffer的區別

1.cache 快取區,是快取記憶體,是位於cpu和主記憶體之間的容量較小但速度很快的儲存器,因為cpu的速度遠遠高於主記憶體的速度,cpu從記憶體中讀取資料需等待很長的時間,而 cache儲存著cpu剛用過的資料或迴圈使用的部分資料,這時從cache中讀取資料會更快,減少了cpu等待的時間,提高了...

那些「cache」和「buffer」(二)

前面一篇文章談了一些linux系統層面的cache和buffer。這裡主要談談應用層面的那些cache。相比系統層面的cache集中在io上,應用層面的cache就顯得五花八門了。就從web說起吧。web快取對於伺服器和客戶端都是不可或缺的。對於web伺服器來說,快取是非常重要的東西,它可以大大的增...