日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 中 for和foreach 性能比较,提高编程性能

發布時間:2023/12/9 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 中 for和foreach 性能比较,提高编程性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:?http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html

在很多情況下for和foreach具有同樣的功能,選擇for還是foreach很多人可能都是看自己的喜好,本測試試圖通過 來真是測試數據來比較他們的執行效率。希望能給大家對他們的時候帶來一些幫助。?
測試環境:??
??? 硬件環境:?? PIII800 + CPU456
??? 軟件環境:?? VisualStudio.Net? + C#
測試用例:
??? 利用結果集來存放記錄,初始化對結果集添加記錄
??? 分別對記錄數為10000,100000,1000000條記錄的時候進行采樣分析
??? 關鍵測試對比代碼如下,功能完全一樣:
??? //foreach開始時間
?? datetime3 = System.DateTime.Now.TimeOfDay.ToString();
?? foreach(DataRow row in relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows)
?buffer = row[RelationData.PK_TABLE_NAME].ToString();
?? datetime4 = System.DateTime.Now.TimeOfDay.ToString();
?? //for開始時間
?? datetime5 = System.DateTime.Now.TimeOfDay.ToString();
?? for(int j=0;j<1000000;j++)
???????? buffer = relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows[j][RelationData.PK_TABLE_NAME].ToString();
?? datetime6 = System.DateTime.Now.TimeOfDay.ToString();
?
測試結果:
?? 10000條記錄時:
???????? foreach讀取時間:16:29:34.2577584?
???????? foreach結束時間:16:29:34.2677728?
???????? for讀取開始時間:16:29:34.2677728?
???????? for讀取結束時間:16:29:34.2878016
?? 100000條記錄時:
???????? foreach讀取時間:16:31:10.1055808?
???????? foreach結束時間:16:31:10.1957104?
???????? for讀取開始時間:16:31:10.1957104?
???????? for讀取結束時間:16:31:10.4460704
?? 1000000條記錄時:
???????? foreach讀取時間:16:33:12.6217504?
???????? foreach結束時間:16:33:13.6332048?
???????? for讀取開始時間:16:33:13.6332048?
???????? for讀取結束時間:16:33:18.7906208
結果分析:
?? 1)對于10000條記錄可以看出
???????? foreach用了 0.0100144??
???????? for循環用了0.0300432?
???????? foreach所花的時間正好是for循環的 1/3?
?? 2)對于100000條記錄可以看出
???????? foreach用了0.0901296???
???????? for循環用了0.2503600
???????? foreach所花的時間是for循環的 36%
?? 3)對于1000000條記錄結果可以看出
???????? foreach用了1.0114544???
???????? for循環用了4.1574160
???????? foreach所花的時間是for循環的 25%
??? 通過對這些測試結果的分析,可以看出相對于原來的for語句foreach具有
更好的執行效率,foreach的平均花費時間只有for30%。通過測試結果在for和foreach都可以使用的情況下,我 們推薦使用效率更高的foreach.在測試同時
我們附加的發現,用for寫入數據時間大約是讀取數據時間的10倍左右

總結

以上是生活随笔為你收集整理的C# 中 for和foreach 性能比较,提高编程性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。