示例#1
0
        public static void Run()
        {
            CodeTimer.Initialize();
            var type = typeof(MessageTest <CmdTest>);
            var ctor = type.GetConstructors()[2];
            ObjectActivator <object> createdActivator = ActivatorHelper.GetActivator <object>(ctor);
            var    input  = new CmdTest();
            var    header = new MessageHeaderTest();
            object tmpObj = null;
            var    count  = 1000000;

            CodeTimer.Time("new instance", count, () =>
            {
                tmpObj = new MessageTest <CmdTest>(input, header);
            });

            CodeTimer.Time("exp tree", count, () =>
            {
                tmpObj = createdActivator(input, header);
            });

            CodeTimer.Time("Activator.CreateInstance", count, () =>
            {
                tmpObj = Activator.CreateInstance(type, input, header);
            });

            CodeTimer.Time("exp tree2", count, () =>
            {
                tmpObj = ActivatorHelper.CreateInstance(type, input, header);
            });
        }
示例#2
0
文件: Program.cs 项目: cuongdn/mmisc
        static void Main(string[] args)
        {
            var n    = 3000000;
            var stop = Stopwatch.StartNew();

            for (int i = 0; i < n; i++)
            {
                var instance = new Program2(i);
            }

            Console.WriteLine(stop.ElapsedMilliseconds);

            stop = Stopwatch.StartNew();

            for (int i = 0; i < n; i++)
            {
                var instance = Activator.CreateInstance(typeof(Program2), i);
            }

            Console.WriteLine(stop.ElapsedMilliseconds);

            stop = Stopwatch.StartNew();
            for (int i = 0; i < n; i++)
            {
                var ctor     = ActivatorHelper.GetActivator <Program2>();
                var instance = ctor(i);
            }

            Console.WriteLine(stop.ElapsedMilliseconds);

            stop = Stopwatch.StartNew();
            for (int i = 0; i < n; i++)
            {
                var ctor     = LazyActivatorHelper.Instance.GetActivator <Program2>();
                var instance = ctor(i);
            }

            Console.WriteLine(stop.ElapsedMilliseconds);


            //var key = CacheHelper.GetKey(MethodBase.GetCurrentMethod(), 1, 2, bool.TrueString, false);
            //var ms = (DateTime.Now.Millisecond);
            //Console.WriteLine(ms);
            //CacheFactory.Current.Add(key, ms);

            //Console.WriteLine("aaa");

            //Console.WriteLine(CacheFactory.Current.Get<int>(key));


            //Console.WriteLine(typeof(Program).FullName);
            ////Log.ThreadVariablesContext.Set("url", "http://abc.com");
            //Log.Debug("b");
            //Log.Warn("Asdfasfasf");
            //Log.Error("Asdfasfasf");
            //Log.Info("Asdfasfasf");
            //Log.Fatal("Asdfasfasf");
        }