码迷,mamicode.com
首页 > 其他好文 > 详细

高效代码指泛型代替非泛型

时间:2015-09-01 12:28:50      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

用泛型代替非泛型,提高效率。

今天测试了一下使用泛型和非泛型的效率问题,结果一目了然。

例子代码如下:

public class Test

{

static int collectionCount = 0;
static Stopwatch watch = null;
static int testCount = 1000000;

public static void TestBegin()
{
GC.Collect();////强制对所有代码进行垃圾回收
GC.WaitForPendingFinalizers();////挂起线程,直到处理终结器队列的线程清空改队列。
GC.Collect();////再此回收。
collectionCount = GC.CollectionCount(0);////返回在代码执行中垃圾回收次数
watch = new Stopwatch();
watch.Start();

}

public static void TestEnd()
{
watch.Stop();
Console.WriteLine("消耗的时间:{0}",watch.ElapsedMilliseconds.ToString());
Console.WriteLine("垃圾回收的次数:{0}",GC.CollectionCount(0)-collectionCount);
}

/// <summary>
/// 测试arraylist性能
/// </summary>
public static void TestArrayList()
{
ArrayList arrayList = new ArrayList();
int temp = 0;
for (int i = 0; i < testCount; i++)
{
arrayList.Add(i);
temp=(int)arrayList[i];
}
arrayList = null;
}

/// <summary>
/// 测试泛型的性能
/// </summary>
public static void TestGenericList()
{
List<int> list = new List<int>();
int temp = 0;
for (int i = 0; i < testCount;i++ )
{
list.Add(i);
temp=list[i];
}
list = null;
}

public static void main(string []args)

{

Console.WriteLine("开始测试性能arraylist");
TestBegin();
TestArrayList();
TestEnd();

Console.WriteLine("开始测试性能List<T>泛型:");
TestBegin();
TestGenericList();
TestEnd();

Console.ReadLine();

}

}

 

运行结果如下:

技术分享

 

可以看到,泛型的效率高很多。

高效代码指泛型代替非泛型

标签:

原文地址:http://www.cnblogs.com/skyfreedom/p/4775314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!