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 )

相关文章
相关标签/搜索