首页 技术 正文
技术 2022年11月15日
0 收藏 368 点赞 4,734 浏览 2031 个字

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 )

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898