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 值的变化来进行车测试,结果:你自己复制代码区测试一下吧,我不告诉你^_^!