999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

.NET編程性能提升的研究與實踐

2013-09-21 07:22:58景慎艷
長春大學學報 2013年10期
關鍵詞:利用方法

景慎艷

(遼寧對外經貿學院 信息管理系,遼寧 大連 116052)

.NET編程性能提升的研究與實踐

景慎艷

(遼寧對外經貿學院 信息管理系,遼寧 大連 116052)

編程性能的優(yōu)化決定軟件產品的質量和生命期。對.NET中常用的DataTable的使用進行深入分析,從使用DataRow、行索引訪問數據、檢索數據等方面進行編程性能測試和分析,給出DataTable類優(yōu)化的實踐策略。

.NET;性能提升;DataTable

0 引言

.NET Framework中提供的DataTable是一個使用起來非常有用的類,它可以方便的裝載數據并對其中的數據進行各種處理。所以,.NET的設計人員和編程人員非常喜歡使用DataTable。但是,如果使用不當也會給程序的性能帶來很大的影響,尤其是對大數據量的裝載和處理,應該更加謹慎、合理的使用DataTable,否則性能可能會低到讓人無法接受。

本文主要針對幾種DataTable非常普遍的使用場景,以理論和實踐相結合的方式來說明DataTable的最佳實踐。

1 DataTable介紹

DataTable代表內存中的數據表,它是ADO.NET庫中的核心對象。類似一個二維表,由行和列組成。DataTable中可以保存格式化的數據,同時可以對其中的數據進行添加、修改、刪除、過濾、獲取、排序等操作。本文主要涉及到數據過濾、數據獲取等操作。

2 DataTable存在的性能問題及解決方案

2.1 如何發(fā)現(xiàn)性能瓶頸

利用MicroSoft Visual Studio2010中提供的“性能向導”工具,可以找出程序中存在的性能瓶頸。性能向導測試結果如圖1所示:

圖1 性能向導測試結果

從上圖中可以很明顯的看出,方法System.Data.DataTable.Select(string)占用了21.84%的cpu時間,也就說明該方法存在性能問題。

利用“性能向導”工具可以找出程序中存在的所有性能瓶頸點,找到這些瓶頸點之后就可以研究對策來解決這些性能問題了。

2.2 利用DataRow訪問數據的方法和性能

測試代碼參照利用DataRow訪問數據的代碼樣例。運行結果如圖2所示:

從測試結果,可以看出利用列名取得數據的性能最差(745ms),所使用時間是分別利用其他兩種方式取得數據的2.4倍(317ms)和2.6倍(286ms)。利用DataColumn取得數據的性能與利用列索引取得數據的性能相當。

圖2 利用DataRow訪問數據的代碼樣例運行結果

結論是:取得DataTable中的數據的時候,利用列索引取得數據的性能是最高的。但是這種方式也存在一定的弊端,那就是代碼的可讀性和可維護性會差一些。而使用列名取得數據的方式在代碼可讀性和可維護性上是最好的。所以,這就需要一個平衡點,如果性能要求非常高,那么應該采用列索引取得數據的方式,否則可以使用列名取得數據的方式。

2.3 利用行索引訪問數據的方法和性能

測試代碼參照利用行索引訪問數據的代碼樣例。運行結果如圖3所示:

圖3 利用行索引訪問數據的代碼樣例運行結果

從測試結果,可以看出使用GetDataBySlowRowIndex方法取得數據的性能最差,原因是取得一行中每一列數據的時候都會重新取得DataRow,這就大大降低了運行效率。而GetDataByQuickRowIndex方法對Get-DataBySlowRowIndex方法進行了改善,即取得某一行中的所有列數據都會使用同一個DataRow對象,從而大大提升了運行效率。GetDataByForEach方法對GetDataByQuickRowIndex方法進行了改善,使用foreach來循環(huán)取得DataRow,又稍稍的提升了一些性能。

結論是:要盡量少的創(chuàng)建DataRow對象,另外foreach比普通的for循環(huán)的性能會好一些。

2.4 檢索數據的方法和性能

測試代碼參照檢索數據的代碼樣例。運行結果如圖4所示:

圖4 檢索數據的代碼樣例運行結果

可測試結果可以看出DataTable的Select方法的執(zhí)行效率非常低,而使用單純的循環(huán)效率就要好很多。

結論是:對于大數量的數據檢索,最好不要使用Select方式,尤其是循環(huán)內進行數據檢索的時候,堅決要避免使用Select,否則性能會及其的低。建議使用單純的循環(huán)比較或者Linq方式得到檢索數據。

3 結語

由于DataTable類是一個非常靈活、非常容易使用的類,所以幾乎所有的信息管理系統(tǒng)都會使用到它。但從實際情況看,由于設計者和開發(fā)者對使用方法了解的不深入,導致大部分程序都存在性能問題。參考本文提出的DataTable的使用方式,可以有效的解決由于DataTable操作引起的各種性能瓶頸。

[1]DataTable類說明[EB/OL].(2013-03-31)[2013-07024]http://msdn.microsoft.com/zh-cn/library/system.data.datatable.aspx

[2]DataRow 類說明.[EB/OL].(2013-03-31)[2013-07024]http://msdn.microsoft.com/zh-cn/library/system.data.datarow.aspx

[3]DataColu類說明[EB/OL].(2013-03-31)[2013-07024].http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.aspx

[4]劉仲博.NET DataList與ListView性能對比研究[J].科技視界,2013(11):27-28.

[5]黃有福.基于ADO.NET數據庫訪問技術及性能優(yōu)化分析[J].硅谷,2012(20):22-23.

[6]鄒蕊,葛中澤.在ASP.NET AJAX中返回DataTable到客戶端Javascript[J].電子設計工程,2011(24)47-49.

[7]王明倩,鄒紅霞,田秋艷.ASP.NET性能深度優(yōu)化的探討[J].長春師范學院學(自然科學版)報,2007,26(4):99-102.

Research and Practice on the Promotion of Performance of.NET Programming

JING Shen-yan
(Department of Information Management,Liaoning University of International Business and Economics,Dalian 116052,China)

The optimization of programming performance determines the quality and lifetime of software products.This paper makes a deep analysis on the commonly used DataTable in.NET,and gives the practice strategy on the optimization of DataTable from testing and analyzing the programming performance of the use of DataRow,row index access data,retrieval data and so on.

.NET;performance promotion;DataTable

TP315

A

1009-3907(2013)10-1259-03

2013-07-24

景慎艷(1976-),女,吉林通化人,副教授,碩士,主要從事網絡應用、數據庫應用等方面的研究。

責任編輯:

吳旭云

猜你喜歡
利用方法
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
利用一半進行移多補少
學習方法
利用數的分解來思考
Roommate is necessary when far away from home
利用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 婷婷亚洲天堂| 午夜成人在线视频| 国产精品一老牛影视频| 久久无码av三级| 国产成人综合亚洲网址| 亚洲无线一二三四区男男| 又黄又湿又爽的视频| 人妻精品全国免费视频| 亚洲无码视频图片| 无码啪啪精品天堂浪潮av| 午夜福利网址| 国产白浆视频| 天天综合天天综合| 91免费国产在线观看尤物| 亚洲人成高清| 中文天堂在线视频| 成人字幕网视频在线观看| 国产精品午夜电影| 日韩无码黄色| 色综合色国产热无码一| 国产一级毛片高清完整视频版| 不卡午夜视频| 亚洲一级毛片在线观播放| 日本在线欧美在线| 欧美在线导航| 久久毛片免费基地| 国产在线精彩视频二区| 成人免费一区二区三区| 亚洲精品国产首次亮相| 永久免费av网站可以直接看的| 91极品美女高潮叫床在线观看| 青草视频免费在线观看| 欧美日韩一区二区三区在线视频| 一本久道久综合久久鬼色| 久久精品国产电影| 日韩久草视频| 成人免费午夜视频| 欧美不卡二区| 亚洲中文字幕97久久精品少妇| 欧美综合成人| 亚洲网综合| 在线观看91精品国产剧情免费| 国产区精品高清在线观看| 波多野结衣爽到高潮漏水大喷| 五月天福利视频| 国产成人亚洲日韩欧美电影| 色妞永久免费视频| 国产精品极品美女自在线看免费一区二区 | 欧美国产日韩一区二区三区精品影视| 乱人伦视频中文字幕在线| 久久这里只有精品23| 国产幂在线无码精品| 亚洲乱伦视频| 国产精品无码影视久久久久久久 | 国产女人在线| a欧美在线| 国产精品无码翘臀在线看纯欲 | aa级毛片毛片免费观看久| 亚州AV秘 一区二区三区| 久久五月天国产自| 天天综合网在线| 夜精品a一区二区三区| 青青青国产视频| 国产午夜无码专区喷水| 国产麻豆精品在线观看| 国产亚洲成AⅤ人片在线观看| 国产精品欧美激情| 亚洲精品无码久久毛片波多野吉| 亚洲中文字幕日产无码2021| 日韩美一区二区| 国产一级裸网站| 丁香五月激情图片| 亚洲女人在线| 亚洲欧洲日产国产无码AV| 亚洲系列无码专区偷窥无码| 九一九色国产| 9cao视频精品| 欧美日韩激情| 国产区免费| 在线观看免费黄色网址| 国产h视频免费观看| 久久久久青草线综合超碰|