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
  • 相关阅读:
    CentOS
    Docker
    Chart的简单使用
    DataGridView中间插入数据行
    获取每个月的固定的第n个星期几
    设置只能开启一个程序实例
    DataContext与实体类
    Attribute
    Delegate
    Event
  • 原文地址:https://www.cnblogs.com/JavCof/p/3229905.html
Copyright © 2011-2022 走看看