泛型与普通方法Object方法效率比较

Posted wml-it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型与普通方法Object方法效率比较相关的知识,希望对你有一定的参考价值。

泛型与普通方法、Object方法效率比较

简介:

   方法的执行效率比较,首先考虑的就是执行方法时所耗费的时长,时长越短,效率越好,耗时越长,效率越差。下面就从执行耗时方法考量三种方法的效率。

实现方法:

 

        static void Main(string[] args)
        {
            Monitor.Show();
        }
        public static void Show()
        {
            Console.WriteLine("****************Monitor******************");
            {
                int iValue = 12345;
                long commonSecond = 0;
                long objectSecond = 0;
                long genericSecond = 0;

                //普通方法
                {
                    Stopwatch watch = new Stopwatch();
                    watch.Start();
                    for (int i = 0; i < 1000000; i++)
                    {
                        ShowInt(iValue);
                    }
                    watch.Stop();
                    commonSecond = watch.ElapsedMilliseconds;
                }

                //Object
                {
                    Stopwatch watch = new Stopwatch();
                    watch.Start();
                    for (int i = 0; i < 1000000; i++)
                    {
                        ShowObject(iValue);
                    }
                    watch.Stop();
                    objectSecond = watch.ElapsedMilliseconds;
                }

                //泛型
                {
                    Stopwatch watch = new Stopwatch();
                    watch.Start();
                    for (int i = 0; i < 1000000; i++)
                    {
                        Show<int>(iValue);
                    }
                    watch.Stop();
                    genericSecond = watch.ElapsedMilliseconds;
                }
                Console.WriteLine("commonSecond={0},objectSecond={1},genericSecond={2}", commonSecond, objectSecond, genericSecond);
                Console.ReadKey();
            }
        }

        #region PrivateMethod
        private static void ShowInt(int iParameter)
        {
            //do nothing
        }
        private static void ShowObject(object oParameter)
        {
            //do nothing
        }
        private static void Show<T>(T tParameter)
        {
            //do nothing
        }
        #endregion

 

执行结果:

****************Monitor******************
commonSecond=3,objectSecond=9,genericSecond=3

 

显然,泛型方法执行效率比较高。

以上是关于泛型与普通方法Object方法效率比较的主要内容,如果未能解决你的问题,请参考以下文章

java泛型与object的比较

泛型与枚举

Java语法糖之泛型与类型擦除

泛型与反射

Java笔记-泛型与集合框架

Java中泛型与集合