Exemple #1
0
 public Result(IContainerAdapter containerAdapter, string name, string version)
 {
     Name = name;
     Version = version;
     _containerAdapter = containerAdapter;
     containerAdapter.Prepare();
 }
Exemple #2
0
        private static Result MeasurePerformance(string name, IContainerAdapter container)
        {
            ClearInstanceProperties();

            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var result = new Result();

            result.Name    = name;
            result.Version = container.Version;

            MeasureResolvePerformance(container, result);

            if (container.SupportsInterception)
            {
                result.InterceptionTime = MeasureProxy(container);
            }

            CheckInstanceProperties(container);

            container.Dispose();

            return(result);
        }
        private static void MeasurePerformance(string name, IContainerAdapter container)
        {
            CollectMemory();

            container.Prepare();

            WarmUp(container);

            long singletonTime = MeasureSingleton(container);
            long transientTime = MeasureTransient(container);
            long combinedTime = MeasureCombined(container);

            Console.WriteLine(string.Format(
                "{0}\t{1}\t\t{2}\t\t{3}\t\t{4}\t\t\t{5}\t\t\t\t{6}",
                name + "             ".Substring(name.Length - 1),
                singletonTime,
                transientTime,
                combinedTime,
                Singleton.Instances,
                Transient.Instances,
                Combined.Instances));

            Singleton.Instances = 0;
            Transient.Instances = 0;
            Combined.Instances = 0;

            container.Dispose();
        }
Exemple #4
0
        public void Warmup(IContainerAdapter container)
        {
            container.Prepare();

            var benchmarks = BenchmarkFactory.CreateBenchmarks().ToArray();

            // Run each benchmark before start measuring to ensure that all root services has been resolved.
            // Exclude the "Prepare" benchmarks as they dispose the container.
            foreach (var benchmark in benchmarks.Where(b => !b.Name.StartsWith("Prepare")))
            {
                if (benchmark.IsSupportedBy(container))
                {
                    benchmark.Warmup(container);
                }
            }
        }
Exemple #5
0
        private static Result MeasurePerformance(string name, IContainerAdapter container)
        {
            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var timings = MeasurePerformance(container);

            var result = new Result();

            result.Name          = name;
            result.Version       = container.Version;
            result.SingletonTime = timings.Item1;
            result.TransientTime = timings.Item2;
            result.CombinedTime  = timings.Item3;

            if (container.SupportsInterception)
            {
                result.InterceptionTime = MeasureProxy(container);
            }

            result.SingletonInstances    = Singleton.Instances;
            result.TransientInstances    = Transient.Instances;
            result.CombinedInstances     = Combined.Instances;
            result.InterceptionInstances = Calculator.Instances;

            Singleton.Instances  = 0;
            Transient.Instances  = 0;
            Combined.Instances   = 0;
            Calculator.Instances = 0;

            container.Dispose();

            return(result);
        }
Exemple #6
0
        private static Result MeasurePerformance(string name, IContainerAdapter container)
        {
            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var timings = MeasurePerformance(container);

            var result = new Result();
            result.Name = name;
            result.Version = container.Version;
            result.SingletonTime = timings.Item1;
            result.TransientTime = timings.Item2;
            result.CombinedTime = timings.Item3;

            if (container.SupportsInterception)
            {
                result.InterceptionTime = MeasureProxy(container);
            }

            result.SingletonInstances = Singleton.Instances;
            result.TransientInstances = Transient.Instances;
            result.CombinedInstances = Combined.Instances;
            result.InterceptionInstances = Calculator.Instances;

            Singleton.Instances = 0;
            Transient.Instances = 0;
            Combined.Instances = 0;
            Calculator.Instances = 0;

            container.Dispose();

            return result;
        }
Exemple #7
0
        private static Result MeasurePerformance(string name, IContainerAdapter container)
        {
            ClearInstanceProperties();

            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var result = new Result();
            result.Name = name;
            result.Version = container.Version;

            MeasureResolvePerformance(container, result);

            if (container.SupportsInterception)
            {
                result.InterceptionTime = MeasureProxy(container);
            }

            CheckInstanceProperties(container);

            container.Dispose();

            return result;
        }
Exemple #8
0
        private static Result MeasurePerformance(IContainerAdapter container)
        {
            ClearInstanceProperties();

            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var result = new Result();
            result.Name = container.Name;
            result.Url = container.Url;
            result.Version = container.Version;

            MeasureResolvePerformance(container, result);

            CheckInstanceProperties(container);

            container.Dispose();

            return result;
        }
Exemple #9
0
 private void Warmup2(IContainerAdapter container)
 {
     container.Prepare();
     ZeroCounters();
 }
Exemple #10
0
        private static Result MeasurePerformance(string name, IContainerAdapter container)
        {
            CollectMemory();

            container.Prepare();

            WarmUp(container);

            var result = new Result( container, name, container.Version);

            Singleton.Instances = 0;
            Transient.Instances = 0;
            Combined.Instances = 0;
            Calculator.Instances = 0;

            //container.Dispose();

            return result;
        }