zoukankan      html  css  js  c++  java
  • 高效代码指泛型代替非泛型

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

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

    例子代码如下:

    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();

    }

    }

    运行结果如下:

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

    没有什么优雅的代码比空代码的执行效率更高
  • 相关阅读:
    Sprint2-3.0
    6/13 Sprint2 看板和燃尽图
    6/8/9/10/11 Sprint2 看板和燃尽图
    相互观看与评价
    复利计算器结对2.0
    汉堡包1.0
    复利计算5.0 结对
    《构建之法》第四章 二人合作 读后感
    复利计算器单元测试测试报告
    实验一、命令解释程序的编写实验
  • 原文地址:https://www.cnblogs.com/skyfreedom/p/4775314.html
Copyright © 2011-2022 走看看