cache緩存
A. c#cache 緩存是存在什麼地方的
1.Cache 是分配在伺服器上的一個公共的內存片。cache 是有時間限制的,超過了伺服器設定的過期時間,它就會被伺服器回收。
所謂公共指的cache只要一創建是任何一個客戶端瀏覽器都可以通過後台代碼訪問到它,它面向的是所有用戶,相對而言session也是伺服器上的一 段內存,但他面向的是單個用戶。它是伺服器的一段內存塊,也就是說每個cache一經創建就佔用了伺服器資源的。所以從這點來說我們就可以說:並不是 cache越多越好。
cache 可以存放任何對象
2.Cache 怎麼樣創建以及怎麼樣銷毀
創建cache
在DotNet環境下通過Cache.Insert(string key,object o)方法創建。
其中key 代表cache的ID,o代表存到cache里的對象。
銷毀cache
通過方法Cache.Remove(string key)
其中key 代表cache的 ID.
調用cache
Cache支持裝箱/拆箱操作。如你可以把一個DataSet對象ds通過Cache.Insert(「dsCache」,ds)的方式存到Cache中,可以通過拆箱操作 DataSet ds = (DataSet)Cache[「dsCache」]來訪問它。
3.什麼時候用cache
Cache 一般用於數據較固定,用的較頻繁的地方。例如可以把進銷存系統中可以把產品信息存入cache,在用戶調用產品信息時通過調用cache即可,這樣從很大 程度上減少了用戶與資料庫的交互,提高了系統的性能。反之,cache不適合用在數據變動快,使用范圍很窄的地方。例如把一個具體采購單存入 cache中。
4.cache 調用注意事項
Cache是有時間限制的。超過了伺服器設置的過期時間,就會被伺服器回收。當cache被回收後對應的內存塊就會被清空,再次通過cache[「cachekey」]訪問對象時返回的就是null值。所以以下這種調用就會出現異常
DataSet ds = (DataSet)Cache[「cacheds」];
DataRow dr = ds.Table[0].Row[0];//出錯,ds為null值,不存在表0。
正確的寫法應該是:
DataSet ds;
if(Cache[「cacheds」] != null)
{
ds = (DataSet)Cache[「cacheds」];
}
else
{
ds= GetDsFromDataBase();
}
DataRow dr = ds.Table[0].Row[0];
B. cache是什麼文件
Cache就是指緩存 SRAM ,也叫 靜態內存 ,這個內存可以 保持數據不被改變 ,除非重新寫入新數據或關閉電源。
(2)cache緩存擴展閱讀:
cache知識簡介
1、由於CPU的速度比內存和硬碟的速度要快得多,所以在存取數據時會使CPU等待,影響計算機的速度。SRAM的存取速度比其它內存和硬碟都要快,所以它被用作電腦的高速緩存(Cache)。
2、有了高速緩存,可以先把數據預寫到其中,需要時直接從它讀出,這就縮短了CPU的等待時間。高速緩存之所以能提高系統的速度是基於一種統計規律,主板上的控制系統會自動統計內存中哪些數據會被頻繁的使用,就把這些數據存在高速緩存中,CPU要訪問這些數據時,就會先到Cache中去找,從而提高整體的運行速度。一般說來,256K的高速緩存能使整機速度平均提高10%左右。
3、CPU內部的緩存叫內部高速緩存(Internal Cache)或一級高速緩存,主板上的緩存叫外部高速緩存(External Cache)或二級高速緩存。不過現在的Pentium II 的CPU已經將主板上的二級緩存封裝在CPU的盒子中,AMD K6-3的CPU內部也集成了256K的二級Cache,對於這類CPU來說,主板上提供的已是三級緩存了。
4、主板上通常都會提供256K到1M的緩存。在CPU內部也有高速緩存,如486CPU有8K的高速緩存,Pentium有16K的高速緩存。Pentium II有32K 一級緩存,AMD K6-2中有64K的一級Cache,AMD K6-3中有64K 的一級 Cache,和256K 的二級 Cache,Cyrix MII 中有64K的Cache。
5、緩存用於存儲一些臨時的文件。在瀏覽網頁的過程中,網頁會自動存儲在用戶的硬碟上。下次再瀏覽相同的網站的時候,系統會自動從硬碟中調出該網頁,既節省了時間也減少了網路的交換。
C. cache與內存之間的區別與聯系
內存,是存儲器,用於輔助CPU輸入輸出數據進行運算。CACHE,是一種特殊的內存。因為主內存速度不夠快,用少量的特別快的但特別昂貴的內存來做緩存加速。就是cache。
兩者都是ram中的數據。簡單來說,buffer是即將要被寫入磁碟的,而cache是被從磁碟中讀出來的。
緩存(cached)是把讀取過的數據保存起來,重新讀取時若命中(找到需要的數據)就不要去讀硬碟了,若沒有命中就讀硬碟。其中的數據會根據讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往後排,直至從中刪除。
緩存(cache)實際並不是緩沖文件的,而是緩沖塊的,塊是磁碟i/o操作的最小單元(在linux中,它們通常是1kb)。這樣,目錄、超級塊、其它文件系統的薄記數據以及非文件系統的磁碟數據都可以被緩沖了。
如果緩存有固定的大小,那麼緩存太大了也不好,因為這會使得空閑的內存太小而導致進行交換操作(這同樣是慢的)。為了最有效地使用實際內存,linux自動地使用所有空閑的內存作為高速緩沖,當程序需要更多的內存時,它也會自動地減小緩沖的大小。
緩沖(buffers)是根據磁碟的讀寫設計的,把分散的寫操作集中進行,減少磁碟碎片和硬碟的反復尋道,從而提高系統性能。linux有一個守護進程定期清空緩沖內容(即寫磁碟),也可以通過sync命令手動清空緩沖。舉個例子吧:我這里有一個ext2的u盤,我往裡面cp一個3m的 mp3,但u盤的燈沒有跳動,過了一會兒(或者手動輸入sync)u盤的燈就跳動起來了。卸載設備時會清空緩沖,所以有些時候卸載一個設備時要等上幾秒鍾。
buffer是由各種進程分配的,由進程和系統一起管理.被用在如輸入隊列等方面,一個簡單的例子如某個進程要求有多個欄位讀入,在所有欄位被讀入完整之前,進程把先前讀入的欄位放在buffer中保存。
cache經常被用在磁碟的i/o請求上,如果有多個進程都要訪問某個文件,於是該文件便被做成cache以方便下次被訪問,這樣可提供系統性能。
綜上所述可以理解為cache系統管理, buffer由進程和系統一起管理。
D. 解釋高速緩沖存儲器(Cache)的作用是什麼
緩沖存儲器 就好比 一個快捷方式 把你經常用到的程序自動記憶(如QQ.下載工具等) 分一級二級現在還出了三級緩存 下次你還用上次的程序的話 緩存直接讀取硬碟內容 不用經過內存 而減少內存的資源
賽揚處理 的緩存都比較低
建議用 酷睿
E. 什麼是Cache作用是什麼
Cache指的是緩存。
高速緩存(英語:cache,/kæʃ/kash[2][3][4])簡稱緩存,原始意義是指訪問速度比一般隨機存取存儲器(RAM)快的一種RAM,通常它不像系統主存那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術。
提供「緩存」的目的是為了讓數據訪問的速度適應CPU的處理速度,其基於的原理是內存中「程序執行與數據訪問的局域性行為」,即一定程序執行時間和空間內,被訪問的代碼集中於一部分。
為了充分發揮緩存的作用,不僅依靠「暫存剛剛訪問過的數據」,還要使用硬體實現的指令預測與數據預取技術——盡可能把將要使用的數據預先從內存中取到緩存里。
(5)cache緩存擴展閱讀
緩存的特點
緩存是指可以進行高速數據交換的存儲器,它先於內存與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會把這些數據復制到緩存中去,以便下一次不要再到內存中去取。
隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,又不頻繁了,所以說緩存中的數據要經常按照一定的演算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的。
F. cache作用
Cache作用具體如下:
1、Cache可以大大提高CPU訪問主存的速度,中央處理器絕大多數存取主存儲器的操作能為存取高速緩沖存儲器所代替,能極大緩和中央處理器和主存儲器之間速度不匹配的矛盾。
在計算機技術發展過程中,主存儲器存取速度一直比中央處理器操作速度慢得多,使中央處理器的高速處理能力不能充分發揮,整個計算機系統的工作效率受到影響。在存儲層次上採用高速緩沖存儲器來緩和中央處理器和主存儲器之間速度不匹配的矛盾也是常用的方法之一。很多大、中型計算機以及新近的一些小型機、微型機也都採用高速緩沖存儲器。
2、Cache可以顯著提高計算機系統處理速度。
高速緩沖存儲器的容量一般只有主存儲器的幾百分之一,但它的存取速度能與中央處理器相匹配。根據程序局部性原理,正在使用的主存儲器某一單元鄰近的那些單元將被用到的可能性很大。因而,當中央處理器存取主存儲器某一單元時,計算機硬體就自動地將包括該單元在內的那一組單元內容調入高速緩沖存儲器,中央處理器即將存取的主存儲器單元很可能就在剛剛調入到高速緩沖存儲器的那一組單元內。於是,中央處理器就可以直接對高速緩沖存儲器進行存取。在整個處理過程中,如果中央處理器絕大多數存取主存儲器的操作能為存取高速緩沖存儲器所代替,計算機系統處理速度就能顯著提高。
拓展資料:
cache定義如下:
cache名為高速緩沖存儲器。其是指存取速度比一般隨機存取記憶體(RAM)來得快的一種RAM,一般而言它不像系統主記憶體那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術,也有快取記憶體的名稱。cache是存在於主存與CPU之間的一級存儲器,由靜態存儲晶元(SRAM)組成,容量比較小但速度比主存高得多, 接近於CPU的速度。
Cache原理具體如下:
任何程序或數據要為CPU所使用,必須先放到主存儲器(內存)中,即CPU只與主存交換數據,所以主存的速度在很大程度上決定了系統的運行速度。程序在運行期間,在一個較短的時間間隔內,由程序產生的地址往往集中在存儲器的一個很小范圍的地址空間內。
指令地址本來就是連續分布的,再加上循環程序段和子程序段要多次重復執行,因此對這些地址中的內容的訪問就自然的具有時間集中分布的傾向。數據分布的集中傾向不如程序這么明顯,但對數組的存儲和訪問以及工作單元的選擇可以使存儲器地址相對地集中。這種對局部范圍的存儲器地址頻繁訪問,而對此范圍外的地址訪問甚少的現象被稱為程序訪問的局部化性質。
如果把在一段時間內一定地址范圍被頻繁訪問的信息集合成批地從主的系統中,CPU訪問數據時,在Cache中能直接找到的概率,它是Cache的一個重要指標,與Cache的大小、替換演算法、程序特性等因素有關。
增加Cache後,CPU訪問主存的速度是可以預算的,64KB的Cache可以緩沖4MB的主存,且命中率都在90%以上。以主頻為100MHz的CPU(時鍾周期約為10ns)、20ns的Cache、70ns的RAM、命中率為90%計算,CPU訪問主存的周期為:有Cache時,20×0.9+70×0.1=34ns;無Cache時,70×1=70ns。
CPU訪問主存的速度大大提高了,但是加Cache只是加快了CPU訪問主存的速度,而CPU訪問主存只是計算機整個操作的一部分,所以增加Cache對系統整體速度只能提高10~20%左右。
G. cache是什麼意思
什麼是緩存(cache)
理解緩存
操作系統的任務主要是合理地調配系統的各種資源,為各種程序的運行提供環境,它可以看作是硬體和應用軟體之間的一個媒介。其中對內存的管理是系統的最主要的職責,怎麼樣使有限的內存用在刀刃上,怎麼要保證系統本身所需的內存(以防止死機,在win2000和winxp里這一點已經做的非常好了),怎樣克服各種硬體連接的瓶頸。
本文主要就這種硬體連接的瓶頸問題展開一些討論。大家知道計算機的主要硬體,硬碟,內存和處理器之間的速度是不一樣的,其中處理器的速度是非常快的,內存次之,而硬碟的速度是很慢的(相對於處理器來說),一件任務的處理要通過處理器給出的指令,把相關數據從硬碟里調出來,到內存,在內存和處理器之間還會有許多數據的傳輸,內存本身不能處理數據,要通過處理器來處理,當他們一起工作的時候,由於處理器和內存工作得快,它們常在把事做完了沒事做了,要等硬碟,這樣就大大降低了系統的整體性能,不能發揮所有硬體的性能。為了解決這個問題,一個優秀的操作系統必然要有「緩存」來作為這些硬體之間的一個中間站,來緩和這種矛盾,從而一定程度上提高系統的性能,「緩存」處理的越好,系統的性能發揮的越好。所以研究「緩存」就有了它的意義。
看了上面的內容,以前對「緩存」沒有認識的朋友應該理解它了。理解之後馬上可以應用的地方就是在自購兼容機的時候。大家大可不必去追趕潮流,買什麼P4處理器,而應該買一個快一點的硬碟,比如買個7200轉的(或更快的),以減少瓶頸的矛盾。處理器嗎,買賽揚好了,一般是沒問題的,處理器大多數時候是閑著的,有時處理很多個大任務時可能會有些緊張,注意避免就可以了。
從某種角度講,內存本身是硬碟和處理器之間的一個緩存,它的作用是緩解硬碟和處理器之間的尖銳矛盾的。當它被作為一個固定的部件後,它本身也成了需要用緩存來緩解瓶頸的對象。它對處理器和硬碟夾在中間,是他們的必經之路,硬碟與處理器之間的關系成了硬碟與內存和內存與處理器之間的雙重關系。所以上面提到的瓶頸問題的處理歸結為對內存的優化,即怎樣處理好硬碟與內存之間的緩存很處理器與內存之間的緩存。
對於一個想了解操作系統的人來說,能夠理解「緩存」對對它做適當的優化是比不可少的一節課。另外再不從一下,緩存的概念是很廣泛的,這里專指內存的緩存。
緩存的優化
操作系統本身已經有了很多優化措施,而我們只能在它的優化措施的基礎上根據我們的實際情況來優化。
1,最「著名」的緩存是頁面文件,這個倒不是緩解速度的,而是緩解容量的,在速度上,硬碟不如內存,但是容量上,內存是不可能跟硬碟比的,當你運行一個程序需要大量數據,佔有大量內存時,內存就要被塞滿,怎麼辦呢?把那些暫時不用的放到硬碟里去,因為處理器總是只調用處理一個任務所需的數據,其他的准備的數據(就是那些可能要用的,但暫時還不用的)可以先放一放,如果內存放不下,就只好放到硬碟了。但是這樣做是有代價的,當放到內存的數據重新要被使用時,你就得等很長時間等系統把在硬碟中得數據調上來。其實你可以感受到系統的這些動作,比如你打開IE或Office,第一次打開是很慢的,但是關閉後馬上再打開就快很多,這是因為這時數據還沒被系統「請」出內存,系統從內存中直接取得數據自然快了;另一個情況,當你開了一個photoshop這樣的大軟體,這時打開Office要比平時還慢一點,這是因為內存本來被photoshop佔領著,要調入Office的數據到內存就必須把photoshop的數據「請」出內存,多了這個過程,打開自然要慢一些。
優化頁面文件,可以做一下幾條:
1)把頁面文件放到系統盤之外,這樣做主要是為了保持頁面文件的連續性,硬碟讀取數據是靠磁頭在磁性物質上「讀」得到數據的,頁面文件放在物理上的不同區域,磁頭就要跳來跳去,自然不利於效率。系統盤文件眾多,頁面文件幾乎肯定不連續。所以要把它移到其他盤。要提醒一點,當你移動好頁面文件後,要把原來的刪除掉,系統不會自動刪除。
2)如果有兩個硬碟,把頁面文件放在轉速快的那個,原因上面已講了很多遍了。
3)最大最小頁面文件的設置原則。有很多人建議將這兩個值設置成相等的,我不知道他們是那裡來的依據,其實這樣設置是不合理的。我們先要知道他們兩個值的意義。一般情況下,內存是不會真的「塞滿」,它會在內存儲量到達一定程度時自動將一部分暫時不用的數據放到硬碟,最小頁面文件是所說的「一定程度」的具體比例的決定因素,最小頁面文件大,比例就低,反之則相反;最大頁面文件是極限值,有時你開了很多程序,內存和最小頁面文件都滿了,就自動溢出到最大頁面文件。所以,將兩者設為一樣大是不合理的。最小頁面文件要小一些,這樣能夠在內存中盡可能存更多的數據,效率就高,最大頁面文件大一些,以免出現「全滿」的的情況。
4)winxp現在支持4G內存,哪怕你有5,6百M的內存,你都不需頁面文件了,這時可以把頁面文件禁掉。到注冊表編輯器HKEY_LOCAL_ Manager Memory Management下,找到DisablePagingExecutive(禁用頁面文件)設其值為1。
5)在同上的注冊表編輯器位置上有個ClearPageFileAtShutdown(關機時清除頁面文件),這里所說的「清除」頁面文件(即虛擬內存)並非是指從硬碟上完全刪除pagefile .sys這個文件,而是對其進行「清洗」和整理,從而為下次啟動Win2K更好地利用虛擬內存作好准備。這樣做還有利於安全,頁面文件上的殘留的數據是可以用特殊的工具讀到的,而這些數據你可能並不想讓人知道。這樣做的代價是關閉系統時間會加長。 將其值設為1即可。
6)學過C的朋友們應該對操作內存有個概念,一個任務完成後,要用free函數來釋放內存,但有很多軟體在設計的時候,並沒有在所有環節都這樣做,這會造成無用的數據占據內存,對這種情況可以使用一些內存優化軟體,讓這鍾軟體來完成釋放內存的動作。
2,下面介紹和優化一些不著名的緩存:
1)內存讀取硬碟數據要經過一個系統緩存(system cache),它的位置是在內存的特定區域,它是用來緩解硬碟與內存之間的速度不平衡的。它是以犧牲內存資源來換取從硬碟讀取數據時的速度的,有了這塊緩存,系統能從硬碟預讀所需的數據,減少系統等待的時間。如果你的內存很大,比如5,6百M,那麼你除了可以採取上面說的關閉頁面文件的方法外,還可以起用打的系統緩存。做法如下,進入注冊表編輯器: HKEY_LOCAL_ Manager Memory Management,找到LargeSystemCache(啟用大的系統緩存),將它的值設為1就可以了。
這樣設置了後,systemcache從4M增加到8M,再win2000和winxp中,這個值是動態的,如果內存不足,systemcache占據的空間可以自動相應調整。
2)處理器從內存讀取數據的緩存是什麼呢?是二級數據高級緩存(緩沖),同樣它也要在內存中佔一個空間,所以最好是有了大內存之後再設置這個值。也需再注冊表裡設置,方法如下:進入 HKEY_LOCAL_ Manager Memory Management ,找到 SecondLevelDataCache,默認為256,大內存設為512。
好了經過了上面的介紹,我想對朋友們來說最重要收獲的是加深了對緩存和操作系統的認識,至於優化的方法,我得承認一般的朋友是用不著去做的,當然「玩」一下也是很有意思的。
H. cache是什麼
cache叫做高速緩沖存儲器,是介於中央處理器和主存儲器之間的高速小容量存儲器。
cache作用:
CPU的速度遠高於內存,當CPU直接從內存中存取數據時要等待一定時間周期,而Cache則可以保存CPU剛用過或循環使用的一部分數據,如果CPU需要再次使用該部分數據時可從Cache中直接調用,這樣就避免了重復存取數據,減少了CPU的等待時間,因而提高了系統的效率。
(8)cache緩存擴展閱讀:
Cache是選購PC系統的一個重要指標
PC系統的發展趨勢之一是CPU主頻越做越高,系統架構越做越先進,而主存DRAM的結構和存取時間改進較慢。因此,Cache技術愈顯重要,在PC系統中Cache越做越大。
廣大用戶已把Cache做為評價和選購PC系統的一個重要指標。本在傳輸速度有較大差異的設備間都可以利用Cache作為匹配來調節差距,或者說是這些設備的傳輸通道。在顯示系統、硬碟和光碟機,以及網路通訊中,都需要使用Cache技術。
I. java Cache緩存的用途和用法
Serial_Number:記錄數據
java Cache:可以理解為一個空間,對於那些不經常修改的數據可以在執行一次查詢後會將查詢結果放在這個空間,之後如果還需要這個數據的話就會從這個空間里去找。。好處當然是節省查詢時間。。當然也有弊端--可能造成數據不同步,所以要求是不經常修改的數據才會放在緩存里。。