單講,微信緩存就是臨時存在手機上的文件。
微信緩存包括你好友的頭像,你收藏的文章略縮圖、公眾號的網頁文件、小視頻、表情包、朋友圈里的照片等。
緩存技術是一種非常常見的計算機技術,不止微信,還有其他很多APP都使用了這種技術。
緩存是什么?
計算機科學里講的緩存,通常指的是一片存儲空間。緩存的出現時為了解決不同介質之間巨大的存儲速度差異。因為成本的原因,一些高速的存儲介質(比如CPU的寄存器)通常做的容量比較小,而容量大的存儲介質(比如內存)存儲速度都比較慢。當速度快的存儲向速度慢的存儲傳輸數據時,要等待速度慢的存儲介質存儲完畢才能進行下一組數據的存儲。同理,速度慢的向速度快的傳輸數據的時候,速度快的要等待速度慢的存儲準備好數據,這樣一來,存儲的效率就高不起來。
典型計算機系統里的緩存架構
緩存的速度一般介于這兩種存儲之間,負責快速接收高速存儲里的數據,可以在閑時在低速存儲里慢慢寫入;預先從低速存儲里讀取數據,然后高速向快速存儲里傳輸。這樣一來,高速存儲等待低速存儲的情況就大大減少了,整個系統的效率就提高了。
圖中的cachhe就是CPU的緩存
緩存技術實質是一種算法,不僅硬件可使用,軟件系統也可使用,并且在現實的軟件系統中應用十分廣泛。
微信為什么要使用緩存
微信的數據文件主要是保存在遠程的數據服務器上的,在上面的圖片中可以看到,遠程服務器的存儲速度是最慢的。當我們使用微信的時間稍微長一點的時候,就會積累很多的數據文件,如果沒有緩存的話,我們去瀏覽朋友圈、打開小程序、查看好友頭像的時候,微信APP需要從遠程存儲服務器上面把這些數據下載下來,這個時間相對來說是比較長的,尤其是在3G網絡的時候時間更長。這樣一來就會給用戶造成卡頓的情況,非常影響使用體驗。
采用了緩存之后,一些近期的數據可以暫時存在你的手機上,在使用微信的時候可以非常快速的從內置存儲中讀取出來,這就是為什么我們在查看近期的朋友圈,和使用最近常用的小程序速度可以很快的緣故。
CPU的參數中,我們除了常見的核心線程以及各種頻率之外,還經常會看到一個名為緩存的參數,有的是9MB,有的是16MB,甚至在三代銳龍上還有的能達到72MB,那么這些緩存到底是干什么的?
3800X
先說一下概念,CPU中緩存是為了加快CPU讀取數據的速度,也是為了給內存一個緩沖期。因為CPU運算速度太快了,光靠內存讀寫完全跟不上,而CPU緩存的數據交換比內存快多了,大部分時候CPU可以直接從緩存讀取數據,找不到的話再從內存讀取,這樣可以節省CPU讀取內存數據時浪費的時間。
CPU緩存分為三類,一級緩存(L1)、二級緩存(L2)和三級緩存(L3)。我們現在常見的是三級緩存。但是CPU在實際數據讀取中重要的卻是一級緩存,因為一級緩存速度最快,二級緩存其次,三級緩存最慢,只是三級緩存的容量最大,上百MB的都有,更容易體現產品更新換代時的價值。
CPU緩存
一級緩存雖然速度最快,但容量最小,單位都是KB,不同CPU之間一級緩存沒有差距,所以現在不怎么提了,二級緩存容量也不大,基本都是個位數MB,除了一些服務器CPU會有10幾MB之外,現在CPU也不怎么提二級緩存。CPU讀取緩存時會先從一級緩存開始,然是二級緩存,而讀取二級緩存有時候會出現數據未命中的情況,這時候就需要從三級緩存讀取。
但是要注意的是三級緩存越大并不一定說這個CPU性能就越強,因為三級緩存的容量還依靠CPU架構和工藝等方面的影響,如果是與架構工藝搭配升級的三級緩存,容量越大才會性能越高。
比如說這次AMD的三代銳龍,依靠Zen2架構和7nm工藝帶來的超大容量三級緩存,解決了前兩代內存延遲的問題,實際效果就是三代銳龍整體游戲表現提升顯著。
一個核心一個16MB三級緩存
總的來說,不同工藝和架構之間的CPU,單純從三級緩存大小是看不出來性能好壞的,不是越大越厲害。如果是相同架構相同工藝的話,我們才需要考慮CPU三級緩存容量的問題,在這時候確實三級緩存容量越大性能越強,需要具體問題具體分析。在選購的時候就沒必要太過講究三級緩存的大小了,遠不如核心線程和頻率的收益大。
(7385553)
存也叫Cache,材料是SRAM
用作CPU和主存之間的緩沖,速度快。
主存,材料是DRAM
用來存儲程序和數據,成本低。
本文由頭條號“嵌入式FM106點1”發布,各種原創技術干貨,歡迎關注。