欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#泛型与非泛型性能比较的实例

程序员文章站 2023-12-13 10:50:52
复制代码 代码如下:using system;using system.collections.generic;using system.linq;using system...

复制代码 代码如下:

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.collections;
namespace consoleapplication
{
    class program
    {
        static int length = 1000 * 1000;
        static void main(string[] args)
        {
            int iteration=10;//方法执行次数
            codetimer.time("值类型处理-泛型方法", iteration, test1);
            codetimer.time("值类型处理-非泛型方法", iteration, test2);
            //codetimer.time("引用类型处理-泛型方法", iteration, test3);
            //codetimer.time("引用类型处理-非泛型方法", iteration, test4);
            console.readkey();
        }
        /// <summary>
        /// 值类型泛型方法
        /// </summary>
        static  void test1()
        {
            list<int> l = new list<int>();
            for (int i = 0; i < length; i++)
            {
                l.add(i);
                int a = l[i];
            }
            l = null;
        }
        /// <summary>
        /// 值类型非泛型方法
        /// </summary>
        static void test2()
        {
            arraylist a = new arraylist();
            for (int i = 0; i < length; i++)
            {
                a.add(i);
                int s = (int)a[i];
            }
            a = null;
        }
        /// <summary>
        /// 引用类型泛型方法
        /// </summary>
        static void test3()
        {
            list<string> l = new list<string>();
            for (int i = 0; i < length; i++)
            {
                l.add("l");
                string s = l[i];
            }
        }
        /// <summary>
        /// 引用类型的非泛型方法
        /// </summary>
        static void test4()
        {
            arraylist a = new arraylist();
            for(int i=0;i<length;i++)
            {
                a.add("a");
                string s = (string)a[i];
            }
            a = null;
        }
    }
}

C#泛型与非泛型性能比较的实例

值类型的泛型与非泛型的性能比较,方法执行10次,由此可见 使用泛型要比非泛型的效率高很多。
C#泛型与非泛型性能比较的实例

上一篇:

下一篇: