• C#三种创建对象方法所需时间比较。。。。。


      C#创建对象的三种方法  new()、Activator、Assembly,接下来通过代码直接来看看运行的速度。。。。

      首先,先看看三种创建对象实例的方法:

           //new();
            public static T New<T>() where T : new()
            {
                return new T();
            }
    
            //Activator创建实例
            public static T Act_Create<T>()
            {
                return Activator.CreateInstance<T>(); ;
            }
    
            //Assembly创建实例
            public static T Ass_Create<T>()
            {
                return (T)Assembly.Load(_assemblyPath).CreateInstance(_assemblyPath + _typeName);
            }

    接下来直接来看,创建10000个对象三种方法各自所需要的时间:

       //Console.Write("通过New创建10000个对象实例所需的时间:");
                Console.WriteLine(TimeWatcher.Watch(() =>
                {
                    for (var i = 0; i < 10000; i++)
                    {
                        var s_instance = ConvertToModel.New<StudyProgram.Common.Student>();
                    }
    
                }));
    
                //Console.Write("通过Activator创建10000个对象实例所需的时间:");
                Console.WriteLine(TimeWatcher.Watch(() =>
                {
                    for (var i = 0; i < 10000; i++)
                    {
                        var s_instance = ConvertToModel.Act_Create<StudyProgram.Common.Student>();
                    }
                }));
    
                //Console.Write("通过Assembly创建10000个对象实例所需的时间:");
                Console.WriteLine(TimeWatcher.Watch(() =>
                {
                    for (var i = 0; i < 10000; i++)
                    {
                        var s_instance = ConvertToModel.Ass_Create<StudyProgram.Common.Student>();
                    }
                }));

    运行时间图如下:

    根据上述运行结果,发现new(),Activator时间差不多少,但是Assembly运行时间是上面两个方法10倍之多。。。。

    虽然三种方法的运行效率不一样,但存在即合理,不一定速度快的就是最合适的,适合自己的才是最好。

  • 相关阅读:
    Scala语言
    Eclipse的各种问题
    Java:
    Come on
    问题:实现继承的抽象方法
    Android:报错AndroidManifest.xml file missing
    正则表达式
    Android:相对布局Relativeyout中的属性解释
    Android:生命周期案例
    Android:设置APP全屏、横屏、竖屏、常亮的方法
  • 原文地址:https://www.cnblogs.com/huage-1234/p/8662656.html
Copyright © 2020-2023  润新知