• 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 )

  • 相关阅读:
    laravel中get方式表单提交后, 地址栏数据重复的问题
    laravel中firstOrCreate的使用
    表单使用clone方法后, 原有select无法生效
    浏览器提示内容编码错误, 不支持此压缩格式
    web端访问文件没有权限的问题
    $(this)在ajax里面不生效的探究
    如何在github上提交pr
    IDEA配置文件的配置文件配置
    quartz定时任务时间设置
    通过 EXPLAIN 分析低效 SQL 的执行计划
  • 原文地址:https://www.cnblogs.com/chensuqian/p/4882207.html
Copyright © 2020-2023  润新知