zoukankan      html  css  js  c++  java
  • 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.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—打开图像文件报错
    CTFshow萌新赛-萌新福利
    微信小程序bug
    微信小程序
    架构
    命令行
    MyBatis
    avalon
    并发测试工具
    less
  • 原文地址:https://www.cnblogs.com/chensuqian/p/4882207.html
Copyright © 2011-2022 走看看