zoukankan      html  css  js  c++  java
  • 教你50招提升ASP.NET性能(二十):认识你的循环

    (31)Know your loops

    招数31:

    认识你的循环

    for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.
    for是遍历集合最快的方法,foreach略慢一些,LINQ查询最慢。

    测试代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Diagnostics;
    
    namespace ConsoleApplicationExample
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("code test:");
    
                Stopwatch watch = new Stopwatch();
                // for loop
                watch.Start();
                for (int i = 0; i < 100000; i++) { ; }
                watch.Stop();
                Console.WriteLine("for loop:");
                Console.WriteLine(watch.Elapsed.TotalMilliseconds);
    
                watch = new Stopwatch();
                // while loop
                watch.Start();
                int loop = 0;
                while (loop < 100000) { loop++; }
                watch.Stop();
                Console.WriteLine("while loop:");
                Console.WriteLine(watch.Elapsed.TotalMilliseconds);
    
                watch = new Stopwatch();
                // foreach loop
                watch.Start();
                int[] array = new int[100000];
                foreach (int i in array) { ; }
                watch.Stop();
                Console.WriteLine("foreach loop:");
                Console.WriteLine(watch.Elapsed.TotalMilliseconds);
    
                watch = new Stopwatch();
                // foreach loop
                watch.Start();
                Array.ForEach(array, (i) => { ; });
                watch.Stop();
                Console.WriteLine("lamda loop:");
                Console.WriteLine(watch.Elapsed.TotalMilliseconds);
    
                Console.ReadLine();
            }
        }
    }

    测试结果:

    code test:
    for loop:
    0.2467
    while loop:
    0.2666
    foreach loop:
    0.4867
    lamda loop:
    0.8728
  • 相关阅读:
    [ssh] 通过ssh私钥生成公钥的方法
    [redis] hiredis-vip 简单使用
    [redis] redis cli的学习记录
    [ovs] 编写openflow流表的文档指引
    [iptables] 如何用iptables管理桥接模式下的设备
    [qemu][kvm] 在kvm嵌套kvm的虚拟机里启动kvm加速
    [qemu] 差分盘使用
    [yum] yum加速
    [ovs] openvswitch 从源码编译安装
    [qemu] qemu从源码编译安装
  • 原文地址:https://www.cnblogs.com/JavCof/p/3229905.html
Copyright © 2011-2022 走看看