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 )

  • 相关阅读:
    Android应用性能优化
    打造高质量Android应用:Android开发必知的50个诀窍
    毕向东day23--java基础-网络总结
    《编写高质量代码:改善Java程序的151个建议》
    最新java数组的详解
    主线程中一定不能放耗时操作,必须要开子线程,比如下载文件,不然会不让你拿到输入流--报错显示android.os.NetworkOnMainThreadException
    《Head First设计模式(中文版)》
    码表由来:ascll码-Gbk2312-GBK-Unicode-UTF-8
    《Java程序性能优化:让你的Java程序更快、更稳定》
    LeetCode 147. 对链表进行插入排序
  • 原文地址:https://www.cnblogs.com/chensuqian/p/4882207.html
Copyright © 2011-2022 走看看