国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

.NET緩存初步

2024-07-10 13:02:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
.net緩存初步zdnet china|2002-4-24
.net的cache類可以為微軟輸出工具箱增加許多典型的緩存功能。在很多開(kāi)發(fā)細(xì)節(jié)中,cache類可以節(jié)約時(shí)間,當(dāng)然它也有很多缺點(diǎn),比如,要限制一些關(guān)鍵字類型。但是,如果使用得當(dāng),它還是可以節(jié)約時(shí)間。本文中,我主要解釋一下如何構(gòu)造cache,同時(shí),解釋一下在必要時(shí)如何構(gòu)造屬于自己的cache。

cache基本知識(shí)
cache是用來(lái)存儲(chǔ)常用信息的高速存儲(chǔ)器,使用cache的目的就是要提高系統(tǒng)性能。比如,要開(kāi)發(fā)asp.net應(yīng)用軟件以實(shí)現(xiàn)許多用戶所要求的相同產(chǎn)品列表功能,就要用到cache來(lái)存儲(chǔ)產(chǎn)品列表。這樣可以防止你重復(fù)從數(shù)據(jù)庫(kù)中讀取信息,否則就要降低系統(tǒng)速度、降低性能。

.net工具箱外caching
.net中有一個(gè)cache類,位于系統(tǒng)web caching中,asp.net中每一個(gè)web form object都有一個(gè)叫做system.web.caching.cache的cache,這是一個(gè)叫做item的默認(rèn)參數(shù)化設(shè)置。item會(huì)接收很多參數(shù)已確定對(duì)象已被插入或提出。問(wèn)題的關(guān)鍵是確定了cache數(shù)據(jù)。在下面的例子中,關(guān)鍵值“alphabet”定義了一個(gè)可以放在cache中的長(zhǎng)量。利用關(guān)鍵值可以從cache中恢復(fù)長(zhǎng)量。

在這種情況下,記住myclass代表web form object

就象例子中看到的那樣,cache object有item特性。這一特性是object的默認(rèn)性質(zhì),因此在代碼中可以省略。但是這種情況是還存在一定危險(xiǎn)性。點(diǎn)擊這里可以看到代碼中的一些默認(rèn)設(shè)置。

如果想要選取捷徑,可以減少代碼:

myclass.cache(“alphabet”) = s

編輯器認(rèn)為這些代碼都是默認(rèn)值設(shè)置,也就是值為“default”。

一旦這些長(zhǎng)量放到cache中,就可以得到下面的值:

s = myclass.cache (“alphabet”)

如果想用web form外面的值,就可以設(shè)置一個(gè)新的cache對(duì)象,如果正在使用visual studio.net的rtm 版本(manufacturing 或 commercial release),可以用下面的設(shè)置:

c = new system.web.caching.cache()

創(chuàng)建完cache之后,就可以使用insert或add命令為其設(shè)值,當(dāng)然,也可以利用get命令從cache中恢復(fù)對(duì)象。

創(chuàng)建自己的cache
也許你擔(dān)心使用微軟的cache會(huì)降低系統(tǒng)性能,或者你需要某一關(guān)鍵類型的cache而不是一個(gè)長(zhǎng)量。(這一限制是system.web.caching object的一個(gè)缺陷),或者你只是出于好奇想做個(gè)試驗(yàn)。

不管什么原因,你就是想創(chuàng)建自己的.net cache。首先來(lái)看看如何創(chuàng)建最基本的、能夠存儲(chǔ)某些值的cache。在下面的部分里,將要解釋一些最基本的cache,同時(shí)清除一些不必要的功能。

要?jiǎng)?chuàng)建自己的cache,首先要了解一下hashtable object。hashtable是system.collections namespace中的一個(gè)collections對(duì)象,從概念上來(lái)理解,object就像是一個(gè)檔案柜,你可以把object放在檔案柜中,同時(shí)也可以按類別把它們重新恢復(fù)回來(lái)。hashtable object允許object插入和恢復(fù)。

現(xiàn)在可以定義一個(gè)名為customcache的新的類,采用hashtable來(lái)存儲(chǔ)objects并把它放到cache中,customcache有兩種方式:名為insertcachedobject的子程序和名為getcachedobject的函數(shù)。插入法可以有兩個(gè)參數(shù):key和object,getcachedobject卻只能有一個(gè)參數(shù):key(見(jiàn)listing a)。

customcache object中定義了表a所要求的代碼:創(chuàng)建customcache object并優(yōu)先使用它。如果只想創(chuàng)建單一模式的cache,也就是所有的代碼都能采用同一cache,那么就可以改變listing b中的object。

注意listing b中在hashtable前增加共享關(guān)鍵字,比如增加一些方法和構(gòu)造器。可以增加第二個(gè)private構(gòu)造器來(lái)防止代碼創(chuàng)建customcache object。現(xiàn)在所有的代碼都共享一個(gè)hashtable類而無(wú)需創(chuàng)建一個(gè)customcache。就像java中靜態(tài)關(guān)鍵字一樣,共享關(guān)鍵字也發(fā)揮同樣的功能,.net中的共享構(gòu)造器與java中的靜態(tài)模塊一樣。

listing c中的例子是一個(gè)采用customcache來(lái)存儲(chǔ)和恢復(fù)長(zhǎng)alphabet量的程序。

現(xiàn)在一個(gè)簡(jiǎn)單的cache已經(jīng)完成了。它不能提供在一段時(shí)間后自動(dòng)終止item的功能,同時(shí)它也不能實(shí)現(xiàn)跟蹤最近使用的objects、caching以及其他使用數(shù)據(jù),但是這只是一個(gè)起點(diǎn)。在以后的文章中,我們會(huì)進(jìn)一步討論這一問(wèn)題以及.net其它的cache功能。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广宁县| 灌阳县| 牡丹江市| 绥宁县| 格尔木市| 西峡县| 宁波市| 喀喇| 文山县| 竹山县| 任丘市| 宜州市| 都昌县| 汉中市| 娱乐| 鹤山市| 雷山县| 巴塘县| 方正县| 皮山县| 龙江县| 奉新县| 兴宁市| 城市| 库车县| 平乐县| 平远县| 剑河县| 德钦县| 临沂市| 新丰县| 咸宁市| 永昌县| 高安市| 永嘉县| 宜阳县| 昂仁县| 西宁市| 昌都县| 长治市| 张家港市|