❶ 在程序里讀取磁碟文件時,為什麼需要使用緩沖區
①緩存相對於固態,速度塊。
②是為了節省寫入與讀取時間
你可以參考一下汽車減震器,輪子在拚命的震動,數據來來回回,到了上就文檔多了
❷ 一個面試問題,為什麼用redis做緩存
redis不是資料庫,只是一種緩存軟體,為了緩解伺服器頻繁讀資料庫帶來的內存資源消耗,redis將需要和資料庫交互的信息暫存,當下次同樣的http請求,就能直接讀取redis裡面的內容,而不用讀資料庫。
這樣減少了資料庫壓力又能提高伺服器響應時間。
❸ 什麼是Cache作用是什麼
Cache指的是緩存。
高速緩存(英語:cache,/kæʃ/kash[2][3][4])簡稱緩存,原始意義是指訪問速度比一般隨機存取存儲器(RAM)快的一種RAM,通常它不像系統主存那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術。
提供「緩存」的目的是為了讓數據訪問的速度適應CPU的處理速度,其基於的原理是內存中「程序執行與數據訪問的局域性行為」,即一定程序執行時間和空間內,被訪問的代碼集中於一部分。
為了充分發揮緩存的作用,不僅依靠「暫存剛剛訪問過的數據」,還要使用硬體實現的指令預測與數據預取技術——盡可能把將要使用的數據預先從內存中取到緩存里。
(3)程序為什麼要做緩存擴展閱讀
緩存的特點
緩存是指可以進行高速數據交換的存儲器,它先於內存與CPU交換數據,因此速率很快。L1Cache(一級緩存)是CPU第一層高速緩存。
內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32—256KB。
L2Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速率與主頻相同,而外部的二級緩存則只有主頻的一半。
L2高速緩存容量也會影響CPU的性能,原則是越大越好,普通台式機CPU的L2緩存一般為128KB到2MB或者更高,筆記本、伺服器和工作站上用CPU的L2高速緩存最高可達1MB-3MB。
緩存只是內存中少部分數據的復製品,所以CPU到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存復制到緩存中去),這時CPU還是會到內存中去找數據,這樣系統的速率就慢下來了,不過CPU會把這些數據復制到緩存中去,以便下一次不要再到內存中去取。
隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,又不頻繁了,所以說緩存中的數據要經常按照一定的演算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的。
❹ 緩沖的概念是為了擴充內存嗎
緩沖的概念並不是為了擴大內存而是在一定程度上內存不足得消除一部分內存然後再儲存新的東西
❺ 緩存的主要意義
緩存工作的原則,就是「引用的局部性」,這可以分為時間局部性和空間局部性。空間局部性是指CPU在某一時刻需要某個數據,那麼很可能下一步就需要其附近的數據;時間局部性是指當某個數據被訪問過一次之後,過不了多久時間就會被再一次訪問。對於應用程序而言,不管是指令流還是數據流都會出現引用的局部性現象。
舉個簡單的例子,比如在播放DVD影片的時候,DVD數據由一系列位元組組成,這個時候CPU會依次從頭處理到尾地調用DVD數據,如果CPU這次讀取DVD數據為1分30秒,那麼下次讀取的時候就會從1分31秒開始,因此這種情況下有序排列的數據都是依次被讀入CPU進行處理。從數據上來看,對於Word一類的應用程序通常都有著較好的空間局部性。用戶在使用中不會一次打開7、8個文檔,不會在其中某一個文檔中打上幾個詞就換另一個。大多數用戶都是打開一兩個文檔,然後就是長時間對它們進行處理而不會做其他事情。這樣在內存中的數據都會集中在一個區域中,也就可以被CPU集中處理。
從程序代碼上來考慮,設計者通常也會盡量避免出現程序的跳躍和分支,讓CPU可以不中斷地處理大塊連續數據。游戲、模擬和多媒體處理程序通常都是這方面的代表,以小段代碼連續處理大塊數據。不過在辦公運用程序中,情況就不一樣了。改動字體,改變格式,保存文檔,都需要程序代碼不同部分起作用,而用到的指令通常都不會在一個連續的區域中。於是CPU就不得不在內存中不斷跳來跳去尋找需要的代碼。這也就意味著對於辦公程序而言,需要較大的緩存來讀入大多數經常使用的代碼,把它們放在一個連續的區域中。如果緩存不夠,就需要緩存中的數據,而如果緩存足夠大的話,所有的代碼都可以放入,也就可以獲得最高的效率。同理,高端的數據應用以及游戲應用則需要更高容量的緩存。
❻ CPU為什麼要做幾級緩存
上面不要誤導人家嘛...
cpu一級緩存是越大越好,一級緩存是直接封裝在處理器內核附近 的,cpu計算數據最先從一級緩存里調取,只有1級緩存里找不到數據後才會從2級緩存,3級緩存,內存里找..
一級緩存2級緩存的結構原理不一樣,一級緩存的特點是讀取速度快,缺點是存儲相同大小的數據的物理空間大,2級緩存恰好相反,鑒於以上特點,增加一級緩存的費用會大大增加,受於cpu框架的限制,沒有那麼多物理空間來增加一級緩存,所以現在大部分同牌子的處理器的一級緩存基本都差不多,intel或amd要增加一級緩存就要重新設計cpu的核心和框架,這要投入海量 的成本.....而增加2級緩存就容易的多......