Пример #1
0
 private static void CtorTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (performanceCounter.Run())
     {
         for (var i = 0; i < series; i++)
         {
             CreateTransientService().DoSomething();
         }
     }
 }
Пример #2
0
        private static void CtorSingleton(long series, IPerformanceCounter performanceCounter)
        {
            lock (LockObject)
            {
                _service2 = null;
            }

            using (performanceCounter.Run())
            {
                for (var i = 0; i < series; i++)
                {
                    CreateSingletonService().DoSomething();
                }
            }
        }
Пример #3
0
 private static void ThisTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (var container = ThisContainer.CreateCore())
         using (container.Bind <IService1>().To <Service1>())
             using (container.Bind <IService2>().To <Service2>())
                 using (container.Bind <IService3>().To <Service3>())
                     using (container.Bind <IService4>().To <Service4>())
                     {
                         using (performanceCounter.Run())
                         {
                             for (var i = 0; i < series; i++)
                             {
                                 container.Resolve <IService1>().DoSomething();
                             }
                         }
                     }
 }
Пример #4
0
        private static void AutofacTransient(long series, IPerformanceCounter performanceCounter)
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <Service1>().As <IService1>();
            builder.RegisterType <Service2>().As <IService2>();
            builder.RegisterType <Service3>().As <IService3>();
            builder.RegisterType <Service4>().As <IService4>();
            using (var container = builder.Build())
                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.Resolve <IService1>().DoSomething();
                    }
                }
        }
Пример #5
0
 private static void DryIocTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (var container = new Container())
     {
         container.Register <IService1, Service1>();
         container.Register <IService2, Service2>();
         container.Register <IService3, Service3>();
         container.Register <IService4, Service4>();
         using (performanceCounter.Run())
         {
             for (var i = 0; i < series; i++)
             {
                 container.Resolve <IService1>().DoSomething();
             }
         }
     }
 }
Пример #6
0
 private static void LightInjectSingleton(long series, IPerformanceCounter performanceCounter)
 {
     using (var container = new ServiceContainer())
     {
         container.Register <IService1, Service1>();
         container.Register <IService2, Service2>(new PerContainerLifetime());
         container.Register <IService3, Service3>();
         container.Register <IService4, Service4>();
         using (performanceCounter.Run())
         {
             for (var i = 0; i < series; i++)
             {
                 container.GetInstance <IService1>().DoSomething();
             }
         }
     }
 }
Пример #7
0
 private static void CastleWindsorTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (var container = new WindsorContainer())
     {
         container.Register(Component.For <IService1>().ImplementedBy <Service1>().LifestyleTransient());
         container.Register(Component.For <IService2>().ImplementedBy <Service2>().LifestyleTransient());
         container.Register(Component.For <IService3>().ImplementedBy <Service3>().LifestyleTransient());
         container.Register(Component.For <IService4>().ImplementedBy <Service4>().LifestyleTransient());
         using (performanceCounter.Run())
         {
             for (var i = 0; i < series; i++)
             {
                 container.Resolve <IService1>().DoSomething();
             }
         }
     }
 }
Пример #8
0
 private static void NinjectTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (var kernel = new StandardKernel())
     {
         kernel.Bind <IService1>().To <Service1>();
         kernel.Bind <IService2>().To <Service2>();
         kernel.Bind <IService3>().To <Service3>();
         kernel.Bind <IService4>().To <Service4>();
         using (performanceCounter.Run())
         {
             for (var i = 0; i < series; i++)
             {
                 kernel.Get <IService1>().DoSomething();
             }
         }
     }
 }
Пример #9
0
 private static void UnityTransient(long series, IPerformanceCounter performanceCounter)
 {
     using (var container = new UnityContainer())
     {
         container.RegisterType <IService1, Service1>();
         container.RegisterType <IService2, Service2>(new ContainerControlledLifetimeManager());
         container.RegisterType <IService3, Service3>();
         container.RegisterType <IService4, Service4>();
         using (performanceCounter.Run())
         {
             for (var i = 0; i < series; i++)
             {
                 container.Resolve <IService1>().DoSomething();
             }
         }
     }
 }
Пример #10
0
        private static void AutofacComplex(long series, IPerformanceCounter performanceCounter)
        {
            var builder = new ContainerBuilder();

            foreach (var type in TestTypeBuilder.Types)
            {
                builder.RegisterType(type).As(type);
            }

            using (var container = builder.Build())
                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.Resolve(TestTypeBuilder.RootType);
                    }
                }
        }
Пример #11
0
        private static void DryIocComplex(long series, IPerformanceCounter performanceCounter)
        {
            using (var container = new Container())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    container.Register(type);
                }

                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.Resolve(TestTypeBuilder.RootType);
                    }
                }
            }
        }
Пример #12
0
        private static void LightInjectComplex(long series, IPerformanceCounter performanceCounter)
        {
            using (var container = new ServiceContainer())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    container.Register(type);
                }

                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.GetInstance(TestTypeBuilder.RootType);
                    }
                }
            }
        }
Пример #13
0
        private static void CastleWindsorComplex(long series, IPerformanceCounter performanceCounter)
        {
            using (var container = new WindsorContainer())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    container.Register(Component.For(type).ImplementedBy(type).LifestyleTransient());
                }

                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.Resolve(TestTypeBuilder.RootType);
                    }
                }
            }
        }
Пример #14
0
        private static void ThisComplex(long series, IPerformanceCounter performanceCounter)
        {
            using (var container = ThisContainer.CreateCore())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    container.Bind(type).To(type);
                }

                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        container.Resolve <object>(TestTypeBuilder.RootType);
                    }
                }
            }
        }
Пример #15
0
        private static void NinjectComplex(long series, IPerformanceCounter performanceCounter)
        {
            using (var kernel = new StandardKernel())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    kernel.Bind(type).To(type);
                }

                using (performanceCounter.Run())
                {
                    for (var i = 0; i < series; i++)
                    {
                        kernel.Get(TestTypeBuilder.RootType);
                    }
                }
            }
        }
Пример #16
0
        private static void ThisByFuncTransient(long series, IPerformanceCounter performanceCounter)
        {
            var emptyArgs = new object[0];

            using (var container = ThisContainer.CreateCore())
                using (container.Bind <IService1>().To <Service1>())
                    using (container.Bind <IService2>().To <Service2>())
                        using (container.Bind <IService3>().To <Service3>())
                            using (container.Bind <IService4>().To <Service4>())
                            {
                                using (performanceCounter.Run())
                                {
                                    container.TryGetResolver <IService1>(typeof(IService1), null, out var resolver, out _);
                                    for (var i = 0; i < series; i++)
                                    {
                                        resolver(container, emptyArgs).DoSomething();
                                    }
                                }
                            }
        }
Пример #17
0
        private static void ThisByFuncComplex(long series, IPerformanceCounter performanceCounter)
        {
            var emptyArgs = new object[0];

            using (var container = ThisContainer.CreateCore())
            {
                foreach (var type in TestTypeBuilder.Types)
                {
                    container.Bind(type).To(type);
                }

                using (performanceCounter.Run())
                {
                    container.TryGetResolver <object>(TestTypeBuilder.RootType, null, out var resolver, out _);
                    for (var i = 0; i < series; i++)
                    {
                        resolver(container, emptyArgs);
                    }
                }
            }
        }