c#中装箱拆箱性能测试

c#中装箱拆箱性能测试

首先了解一下关于时间的换算:

1秒=1000毫秒;

1毫秒=1000微秒;

1微秒=1纳秒

而1毫秒=10000ticks;所以1ticks=100纳秒=0.1微秒

ticks这个属性值是指从0001年1月1日12:00:00开始到此时的以ticks为单位的时间,就是以ticks表示的时间的间隔数。

使用DateTime.Now.Ticks返回的是一个long型的数值。

然后上代码:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fan
{

    class Program
    {
        const int ListSize = 5500000;

        private static void UserArrayList()
        {
            ArrayList list = new ArrayList();
            long starTicks = DateTime.Now.Ticks;
            for (int i = 0; i < ListSize; i++)
            {
                list.Add(i);
            }
            for(int i=0;i<ListSize;i++)
            {
                int value = (int)list[i];
            }
            long endTicks = DateTime.Now.Ticks;
            Console.WriteLine("使用ArrayList,耗时:{0}",endTicks-starTicks);
        }

        private static void UseGenericList()
        {
            List<int> list = new List<int>();
            long starTicks = DateTime.Now.Ticks;
            for (int i = 0; i < ListSize; i++)
            {
                list.Add(i);
            }
            for (int i = 0; i < ListSize; i++)
            {
                int value = list[i];
            }
            long endTicks = DateTime.Now.Ticks;
            Console.WriteLine("使用List<int>,耗时{0}",endTicks-starTicks);
        }
        static void Main(string[] args)
        {
            UserArrayList();
            UseGenericList();

            Console.ReadLine();

        }
    }
}

通过多次对ListSize 值的变化来进行车测试,结果:你自己复制代码区测试一下吧,我不告诉你^_^!

原文地址:https://www.cnblogs.com/mc67/p/5098403.html