国产精品一品二品_49vv亚洲_亚洲美女激情视频_国产成人亚洲无吗淙合青草_欧美在线天堂_人妻av无码av中文av日韩av_av在线播放免费_91亚洲精品在线观看_韩国 欧美 日产 国产精品_久久人人爽

在線客服:  

「南寧煙寒網(wǎng)絡(luò)」提供南寧網(wǎng)站建設(shè)、網(wǎng)站策劃、南寧網(wǎng)頁制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、南寧SEO優(yōu)化、網(wǎng)站維護(hù)、南寧網(wǎng)站優(yōu)化、南寧網(wǎng)站推廣、廣告設(shè)計(jì)等服務(wù)..

咨詢熱線

在線客服

24小時(shí)免費(fèi)咨詢電話:18978941786

客服時(shí)間:上午9:30~下午6點(diǎn)

當(dāng)前位置:首頁>> 技術(shù)文章 >> Web開發(fā) >> .NET開發(fā)網(wǎng)站過程中易被忽視的問題

.NET開發(fā)網(wǎng)站過程中易被忽視的問題

收藏 分享 發(fā)布日期:2012-2-12 16:30:44    編輯:admin  文章來源:  點(diǎn)擊率:

在異常處理的時(shí)候,特別提醒兩點(diǎn):

    一, 你的數(shù)據(jù)庫關(guān)閉的時(shí)候應(yīng)該是在代碼行0028前,而不是后;

    二, 有人不習(xí)慣(或者一時(shí)疏忽)加上0088行的代碼;

    針對[Sample-02]和[sample-03],把打開數(shù)據(jù)庫連接寫在所有的循環(huán)語句之前,如:
 

clsOraDb.Open(strConn)
Foreach(DataRow row in tabl.select(“”,”ProductID”)
……………

………….
Next
 
    當(dāng)然還有另外一個(gè)做法,就是用Using語句,提交.NET應(yīng)用的垃圾收集器自動收集;相關(guān)的文章很多,這里不再特別贅述。

     二、對象只管創(chuàng)建應(yīng)用,不管釋放篇
   
    我們繼續(xù)用[Sample-01]的代碼,我們現(xiàn)在看0004行的代碼:

0004 Dim dtResult As New DataTable

    誰會發(fā)現(xiàn)它被釋放,你不能,我也不能,從來沒有被釋放過。

    “0004”行的代碼解釋是,要在內(nèi)存劃分一個(gè)空間給這個(gè)定義的對象dtresult;系統(tǒng)要?jiǎng)澐侄啻蟮目臻g呢?呀,我沒有研究過(留給那些有心人吧,呵呵..)。但有一點(diǎn),要在內(nèi)存劃分一個(gè)空間,就是要占用內(nèi)存。那么內(nèi)存有多大呢,不是無限大吧,也是有限的,所有運(yùn)行上述代碼的最終結(jié)果是,系統(tǒng)的執(zhí)行效率越來越慢,有人就懷疑,我有內(nèi)存1到2G的,加上虛擬內(nèi)存就更大,我只能說你的懷疑沒錯(cuò)。可是你的應(yīng)用程序就用這么一只函數(shù)嗎?我想肯定不是,所以上百只函數(shù)的應(yīng)用執(zhí)行對內(nèi)存的消耗可想而知。如果是后臺自動運(yùn)行的程序,及時(shí)是一個(gè)function,也會讓系統(tǒng)崩潰。這只是一個(gè)簡單的例子,有更復(fù)雜的。像這樣的對象應(yīng)用還有:Dataset, Datatable,DataReader,DataAdapter,Datagrid..等。

    那么怎么解決這些問題呢:

   2.1在Try catch 語句前定義好所用的對象, 如:
 

Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..

Catch ex As Exception
Throw ex
Finally
End Try
 


2.2釋放的語句如下

 

Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..
……………..
Catch ex As Exception
--釋放應(yīng)用的對象
Throw ex
Finally
--使用完后,釋放應(yīng)用的對象
dtResult.dispose --從內(nèi)存里清楚該對象
DR.dispose -從內(nèi)存里清楚該對象
DS.dispose -從內(nèi)存里清楚該對象
End Try

有人習(xí)慣寫成下面這樣:
Dim dtResult As New DataTable
Dim DR as New DataReader
Dim DS as New Dataset
Try
..
‘使用完后,釋放應(yīng)用的對象
dtResult.dispose ‘從內(nèi)存里清楚該對象
DR.dispose ‘從內(nèi)存里清楚該對象
DS.dispose ‘從內(nèi)存里清楚該對象
Catch ex As Exception
‘釋放應(yīng)用的對象
Throw ex
Finally
End Try
 


    這不是也釋放了嗎?我想問的是,如果程序出現(xiàn)異常,它們會釋放嗎 ?我肯定得告訴大家,它們一定不能釋放,為了確保程序的穩(wěn)定運(yùn)行,我建議大家都來用Try Catch語句。

文章分頁: 1 | 2 | 3 |
本文章由南寧網(wǎng)站建設(shè)南寧網(wǎng)站優(yōu)化南寧網(wǎng)絡(luò)公司整理,轉(zhuǎn)載請注明出處:http://www.hjnf.com.cn/

關(guān)于我們 | 域名主機(jī) | 建站套餐 | 企業(yè)動態(tài) | 成功案例 | 網(wǎng)站推廣 | 建站知識 | 常見問題 | 聯(lián)系我們

南寧煙寒網(wǎng)絡(luò)竭誠為您免費(fèi)提供南寧網(wǎng)站建設(shè)南寧網(wǎng)站設(shè)計(jì)南寧網(wǎng)站優(yōu)化、維護(hù)以及網(wǎng)站技術(shù)很方面的網(wǎng)絡(luò)服務(wù)!

南寧網(wǎng)站建設(shè)南寧網(wǎng)絡(luò)公司咨詢熱線電話:0771-5306126 18967841786(24小時(shí)全天電話)

煙寒網(wǎng)絡(luò) - 讓你進(jìn)一步走向成功

主站蜘蛛池模板: 云林县| 甘泉县| 道孚县| 斗六市| 安吉县| 新安县| 昌图县| 嫩江县| 达州市| 新邵县| 婺源县| 四子王旗| 高雄县| 唐海县| 五台县| 平泉县| 苏州市| 中卫市| 康定县| 桓台县| 康平县| 湟源县| 龙泉市| 阆中市| 南康市| 都昌县| 沧源| 新竹市| 江永县| 建湖县| 青川县| 宜黄县| 辰溪县| 宜兴市| 甘孜县| 太湖县| 泰宁县| 长丰县| 宁夏| 嘉义市| 远安县|