for和foreach效能比較

2021-04-12 18:17:53 字數 1146 閱讀 4603

for和foreach效能比較

在很多情況下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();

結果分析:

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倍左右

for和foreach效能比較

在很多情況下for和foreach具有同樣的功能,選擇for還是foreach很多人可能都是看自己的喜好,本測試試圖通過 來真是測試資料來比較他們的執行效率。希望能給大家對他們的時候帶來一些幫助。測試環境 硬體環境 piii800 cpu456 軟體環境 visualstudio.net c 測試用...

for迴圈與foreach效能比較與適用場景

for迴圈 for int i 0 i 100 i foreach迴圈 for int i integers 等同於 for iterator i list.iterator i.hasnext 效能上的區別 對於linkedlist,是單鏈表,使用for迴圈每次都要從第乙個元素讀取next域來讀取...

Prim和Kruskal效能比較

prim 鄰接表 優先佇列優化 kruskal 鄰接矩陣 並查級優化,因為kruskal裡沒有需要遍歷鄰接邊的操作,所以簡單的用鄰接矩陣 結果保證 獲得路徑即可 e因為要有生成樹,原圖必須是一條連通的路線,所以e n 1 include include include using namespace...