您好,登錄后才能下訂單哦!
由于經濟因素,處理器和內存所使用的半導體工藝不同,工藝的差異導致了處理器和內存的速度差異,處理器總是要等待內存,處理器速度遠遠大于內存。所以在兩者之間增加緩存是及其必要的。
通常:V處理 > V處理器內部寄存器 > V緩存 > V內存 > Vflash
程序運行時有一個特點,在短時間內,處理器訪問的儲存空間是一個很小的范圍。
A.時間局部性:某個存儲單元在短時間內很可能被再次訪問
B.空間局部性:某個存儲單元的鄰近單元在短時間內也可能被訪問
4.3 cache
Cache是一種小容量高速存儲器,其存取速度與處理器的運算速度幾乎同量級,現代計算機通常將其內置于處理器芯片內。
在處理器和內存之間設置cache,把內存中別頻繁訪問的指令和數據復制到cache中。大多數情況下,處理器能直接從cache中取得指令和數據。
內存與緩存之間的映射最簡單的方法是直接映射法。特點是任意一個內存地址都能映射到cache中的一個固定位置。
?將cache和內存分成固定大小的塊(如512Byte/塊)
?內存中每一塊在cache中有固定的映射位置
?映射公式為:pos_cache = 內存塊號 % cache總塊數,如下圖示:
![](https://s1.51cto.com/images/blog/201803/09/1037cd3857ebfbac7c4c45dc02e2a74c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
根據訪問地址中的c位找到cache中的對應塊,比較地址中的t位和對應塊號的flag是否相同。
?相同,則根據塊內地址做為偏移量直接讀取數據
?不同,說明要訪問的內存數據不在緩存中,則從內存中復制塊內容到緩存。
優點:映射過程簡單,所需耗時短
缺點:當短時間訪問的地址有同余沖突(兩片內存對應同一片緩存),會造成緩存失效。
背景:日志系統對系統效率影響很大,同時不易分析,無法高效打印二進制數據,需要自定義日志的解析格式,并且可以對日志進行分類,控制其輸出。
最初方案:開發一個日志解析軟件,配合腳本實現日志解析,每一種日志都有自己對應的解析程序。當有日志來時,通過日志類型查找對應的解析程序。
問題:短時間內有大量日志需要打印時,性能無法滿足要求。性能的瓶頸在于每次頻繁查找耗時太多。
解決方案:根據cache原理,設置二級緩存,盡可能避開查找。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。