你的位置:首页 > ASP.net教程

[ASP.net教程]C#中var、int、object性能比较


 

var关键字是.net3.5推出的关键字,主要是让编译器自动推断并判断变量类型,类似javascript中的var。

在使用一些性能优化软件时,在代码优化时,我发现不管定义什么类型的变量,变量的类型都统统换成var。难道var的性能比具体的类型和object都要高?

 

实践出真知:

新建一个控制台应用程序

 

 1 /*Var 性能测试 */ 2            Stopwatch stw = new Stopwatch(); 3   4            List<int> intlist = new List<int>(); 5            stw.Start(); 6            for( int i = 0; i < 10000000; i++ ) { 7                var index = i;//使用var转入和转出 8                intlist.Add(index); 9            }10            stw.Stop();11            Console.WriteLine("Var:{0}", stw.Elapsed.Ticks);12  13  14            /*Int 性能测试 */15  16  17            List<int> intlist2 = new List<int>();18            stw.Start();//开始时间19            for( int i = 0; i < 1000000; i++ ) {20                int index = i;//使用int转入和转出21                intlist2.Add(index);22            }23            stw.Stop();24            Console.WriteLine("int:{0}", stw.Elapsed.Ticks);25  26            /*Object性能测试 */27            stw.Start();//开始时间28  29            List<int> intlist3 = new List<int>();30            for( int i = 0; i < 1000000; i++ ) {31                object index = i;//使用object转入和转出32                intlist3.Add((int)index);33            }34            stw.Stop();35            Console.WriteLine("obj:{0}", stw.Elapsed.Ticks);36  37            Console.Read();

View Code

 

 

测试结果:

 

总结:

 var性能 > int > object

   object 类型牵涉装箱拆箱的问题,自然是效率最慢的。

    但从测试结果来看,var类型的性能总是优于int或其他类型。