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
  • 相关阅读:
    highcharts 时间少8小时问题
    Spring声明式事务配置管理方法
    jetty简介
    java事务管理
    oracle表中某个字段含有字符回车、空格的手动修改方式
    java环境变量配置
    JAVA解析XML的四种方式
    JSON-lib框架,JAVA对象与JSON、XML之间的相互转换
    Java WebService简单实例
    HTTP协议报文、工作原理及Java中的HTTP通信技术详解
  • 原文地址:https://www.cnblogs.com/JavCof/p/3229905.html
Copyright © 2011-2022 走看看