C# for 和 foreach的執行效率

for和foreach哪一個執行效率快,相信不少人都會說固然是foreach快啊,在我實驗以前我也是這麼認爲的,直到今天。費話很少說,下面是測試的結果,區分Debug和Release,數據採用int[],List<int>,Person[],List<Pserson>,DataTable:數組

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++數據結構

Debug下測試

初始化5千萬整型數據...
初始化整型數據完成。耗時:650操作系統

使用For遍歷10次整型數組,求平均時間...
For循環整型數組平均時間:202.9內存

使用Foreach遍歷10次整型數組,求平均時間...
Foreach循環整型數組平均時間:236.8效率

使用For遍歷10次整型List,求平均時間...
For循環整型List平均時間:360.9foreach

使用Foreach遍歷10次整型List,求平均時間...
Foreach循環整型List平均時間:269List

---------------------------------------循環

初始化5千萬Object數據...
初始化Object數據完成。耗時:193656遍歷

使用For遍歷10次Object數組,求平均時間...
For循環Object數組平均時間:930

使用Foreach遍歷10次Object數組,求平均時間...
Foreach循環Object數組平均時間:1130.9

使用For遍歷10次ObjectList,求平均時間...
For循環ObjectList平均時間:923.7

使用Foreach遍歷10次ObjectList,求平均時間...
Foreach循環ObjectList平均時間:1282.8

---------------------------------------

初始化2千萬DataTable數據...
初始化時間:115291

使用For遍歷10次DataTable,求平均時間...
For循環DataTable平均時間:12014.4

使用Foreach遍歷10次DataTable,求平均時間...
Foreach循環DataTable平均時間:3804.4


Release====================================================================================================================

初始化5千萬整型數據...
初始化整型數據完成。耗時:513

使用For遍歷10次整型數組,求平均時間...
For循環整型數組平均時間:41.1

使用Foreach遍歷10次整型數組,求平均時間...
Foreach循環整型數組平均時間:46.4

使用For遍歷10次整型List,求平均時間...
For循環整型List平均時間:168.9

使用Foreach遍歷10次整型List,求平均時間...
Foreach循環整型List平均時間:165.3

-------------------------------------------------------

初始化5千萬Object數據...
初始化Object數據完成。耗時:157782

使用For遍歷10次Object數組,求平均時間...
For循環Object數組平均時間:38

使用Foreach遍歷10次Object數組,求平均時間...
Foreach循環Object數組平均時間:490.2

使用For遍歷10次ObjectList,求平均時間...
For循環ObjectList平均時間:365.5

使用Foreach遍歷10次ObjectList,求平均時間...
Foreach循環ObjectList平均時間:726.6

----------------------------------------------------

初始化2千萬DataTable數據...
初始化時間:114483

使用For遍歷10次DataTable,求平均時間...
For循環DataTable平均時間:12059

使用Foreach遍歷10次DataTable,求平均時間...
Foreach循環DataTable平均時間:3891.8

++++++++++++++++++++++++++++++++++++++++++++++

由此能夠看出不一樣的數據結構,for和foreach執行效率是不同的,不能說哪一個必定快。有些數據結構差異不大,有些差異就比較大。

 

以上測試條件爲:

電腦型號 X64 兼容 臺式電腦操做系統 Windows 7 旗艦版 64位 ( DirectX 11 )處理器 AMD FX -8320 Eight-Core 八核主板 華碩 M5A78L-M LX3 PLUS ( AMD 780G/780V/790GX/890GX )內存 8 GB ( 金士頓 DDR3 1600MHz )

相關文章
相關標籤/搜索