zoukankan      html  css  js  c++  java
  • C#中Array和List的性能比较

    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    
    namespace TestListArrayPerformance
    {
        class Program
        {
            static void Main(string[] args)
            {
                //const int COUNT = 1000;
                const int COUNT = 10000000;
                
                //Test string's performance
                //string[] array = new string[COUNT]; // Volumn is predefined
                //Test integers' performance
                int[] array = new int[COUNT]; // Volumn is predefined
    
                //Test string's performance
                //List<string> list = new List<string>(); // Volumn is changable
                //Test integers' performance
                List<int> list = new List<int>(); // Volumn is changable
                
                Console.WriteLine("The count of the elements is: {0}. 
    ", COUNT);
    
                Console.Write("Total time cost for an Array initialization is: ");
                
                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();
    
                for (int i = 0; i < COUNT; i++)
                {
                    //Test string's performance
                    //array[i] = i.ToString();
    
                    //Test integers' performance
                    array[i] = i;
                }
    
    
                stopWatch.Stop();
                Console.Write(stopWatch.ElapsedMilliseconds.ToString() + "ms.");
    
                stopWatch.Reset();
                stopWatch.Start();
                Console.WriteLine("
    ");
    
                for (int i = 0; i < COUNT; i++)
                {
                    //Test string's performance
                    //list.Add(i.ToString());
    
                    //Test integers' performance
                    list.Add(i);
                }
    
                stopWatch.Stop();
                Console.Write("Total time cost for a List initialization is: ");
                Console.Write(stopWatch.ElapsedMilliseconds.ToString() + "ms.");
                stopWatch.Reset();
    
                Console.ReadKey();
            }
        }
    }
    
    



    结论

    1. 在数据量庞大的时候List的性能比Array的性能低;
    2. 在数据量较小的时候List的性能和Array的性能基本上差不多;
    3. 在数据量小或者长度不可知的情况下推荐使用List,因为其长度是可变的;
    4. 在数据量大或者数据量的长度明确的情况下推荐使用Array,因为这样可以提高性能。

    相关链接

    List源码

    Array源码




    作者:艾孜尔江

  • 相关阅读:
    *** mixed implicit and normal rules: deprecated syntax
    cold boot and warm boot.
    git打补丁命令
    LSB和MSB
    __attribute__((weak)) ------ 关于弱符号的用法
    键盘和鼠标无法热插拔问题
    yocto编译加速及单独编译内核与uboot
    V4L2学习教程
    linux错误码
    linux内核面试常见试题
  • 原文地址:https://www.cnblogs.com/ezhar/p/13637607.html
Copyright © 2011-2022 走看看