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 )

  • 相关阅读:
    JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
    JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
    MongoDB之一介绍(MongoDB与MySQL的区别、BSON与JSON的区别)
    spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程
    SpringBoot自动化配置之四:SpringBoot 之Starter(自动配置)、Command-line runners
    分析诊断工具之一:MYSQL性能查看(多指标)
    Condition-线程通信更高效的方式
    微服务监控之一:Metrics让微服务运行更透明
    游戏后台服务技术选型
    TCP之四:TCP 滑动窗口协议 详解
  • 原文地址:https://www.cnblogs.com/chensuqian/p/4882207.html
Copyright © 2011-2022 走看看