分子對接的原理 Cache的工作原理是什么?
Cache的工作原理是什么?CPU工作速度很高,但內(nèi)存訪問速度相對較低,導致CPU等待,降低了處理速度,浪費了CPU的能力。Cache用于緩存CPU和內(nèi)存。cache的工作原理是基于程序訪問的局部性。
Cache的工作原理是什么?
CPU工作速度很高,但內(nèi)存訪問速度相對較低,導致CPU等待,降低了處理速度,浪費了CPU的能力。Cache用于緩存CPU和內(nèi)存。cache的工作原理是基于程序訪問的局部性。對大量典型程序的分析結(jié)果表明,在較短的時間間隔內(nèi),程序生成的地址往往集中在內(nèi)存邏輯地址空間的一小部分。指令地址的分布是連續(xù)的,循環(huán)程序段和子程序段需要重復執(zhí)行。因此,對這些地址的訪問自然傾向于在時間上集中。數(shù)據(jù)分布的集中化趨勢不如指令的集中化趨勢明顯,但陣列的存儲和存取以及工作單元的選擇可以使存儲地址相對集中。這種頻繁訪問本地范圍內(nèi)的內(nèi)存地址而很少訪問本地范圍外的地址的現(xiàn)象稱為程序訪問的局部性。根據(jù)程序局部性原理,可以在主存儲器和CPU的通用寄存器之間設置一個容量相對較小的高速存儲器,將主存儲器中執(zhí)行的指令地址附近的一些指令或數(shù)據(jù)傳送到存儲器中,供CPU使用一段時間。這對提高程序的運行速度有很大的作用。這種在主存和CPU之間的高速小容量內(nèi)存稱為高速緩存?;谶@一原理,系統(tǒng)不斷地將與當前指令集相關(guān)聯(lián)的一個小指令集從內(nèi)存中讀取到高速緩存中,然后高速傳輸?shù)紺PU,從而實現(xiàn)速度匹配。當CPU從內(nèi)存中請求數(shù)據(jù)時,它通常首先訪問緩存。由于局部性原則不能保證請求的數(shù)據(jù)在緩存中是100%,因此存在命中率。也就是說,CPU能夠在任何時候從高速緩存可靠地獲取數(shù)據(jù)的概率。命中率越高,正確獲取數(shù)據(jù)就越可靠。一般來說,cache的存儲容量要比主存小得多,但不能太小。太小會導致太低的命中率,沒有必要太大。過大不僅會增加成本,而且當容量超過一定值時,命中率也不會隨著容量的增加而顯著增加。只要緩存空間和主存空間在一定范圍內(nèi)保持適當比例的映射關(guān)系,緩存命中率還是相當高的。一般來說,緩存與內(nèi)存的空間比是4:1000,即128kbcache可以映射32MB內(nèi)存;256kbcache可以映射64MB內(nèi)存。在這種情況下,命中率超過90%。至于丟失的數(shù)據(jù),CPU必須直接從內(nèi)存中獲取。同時,它也被復制到緩存中,以便下次訪問。
怎樣清除opcache緩存?
1. php.ini文件默認配置opcache.validate時間戳=1opcache.revalidateFreq=2//默認情況下,更改的文件將每2秒驗證一次,緩存將更新
2。應用程序
在聯(lián)機環(huán)境下調(diào)試時,如果代碼被更新,則不會立即生效。緩存更新后才生效,不方便調(diào)試
3。解決方案
開發(fā)環(huán)境:
將修改為:opcache.revalidateFreq=1//您可以將2s更改為1s。更改的文件將每隔1s進行一次驗證,緩存將更新
聯(lián)機環(huán)境:opcache.validateTimestamps=0//默認情況下不會打開聯(lián)機環(huán)境。如果未打開,將始終使用緩存
以下兩種方法:
A.通過函數(shù)添加條目文件<?PHP opcache_uureset()?>
B.重新啟動web服務器