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.9

使用Foreach遍历10次整型List,求平均时间...
Foreach循环整型List平均时间:269

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

初始化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 )

最新文章

  1. 【PHP面向对象(OOP)编程入门教程】14.final关键字的应用
  2. C和C++的头文件总结
  3. 似然估计中为什么要取对数以GMM为例
  4. Java Hour 14 多线程基础
  5. struts2拦截器の简单实现(日语系统,请忽略乱码,重在实现)
  6. Java选择结构、循环结构
  7. MyBatis中井号与美元符号的区别
  8. Linux使用技巧9--用dpkg管理你的软件
  9. 对话 UNIX: 关于 inode
  10. php 多进程中的信号问题
  11. 新服务器部署sqlserver之前的准备
  12. SVN的branch合并到trunk的过程思考
  13. python3.6执行pip3时 Unable to create process using &#39;&quot;&#39;
  14. 第二课:Hadoop集群环境配置
  15. 错误解决记录-------------验证启动HDFS时遇到的错误
  16. 设置js的ctx
  17. 短信利用weixin://connectToFreeWifi/?apKey=协议跳转到微信打开落地页h5
  18. luogu P5105 不强制在线的动态快速排序
  19. android中YUV转RGB的方法
  20. Oracle 添加主键和索引

热门文章

  1. debian8平滑升级到debian9
  2. 紫书 例题 9-7 UVa 11584 (线性结构上的动态规划)
  3. PyCharm激活方法
  4. Objective-C(十九、通知-消息发送模式之中的一个)——iOS开发基础
  5. OpenCASCADE Make Face With Holes
  6. 关于mysql数据库在输入password后,滴的一声直接退出界面的解决的方法(具体办法)
  7. 6.cocos2d设置定时器
  8. 计算器-- 利用re模块 利用函数封装 第二版
  9. 全面了解Linux下Proc文件系统
  10. CCNP路由实验之十五 NAT(网络地址转换)