Esempio n. 1
0
        public void Benchmark_CreateComplexObject_ResolveRecursively(bool warmUp, bool useBakedData)
        {
            var prefab = NewInactiveGameObject();

            prefab.AddComponent <CtorInjectionContainer.StringDependentComponent>();

            prefab.AddComponent <Component1>();
            prefab.AddComponent <Component2>();
            prefab.AddComponent <Component3>();
            prefab.AddComponent <Component4>();
            prefab.AddComponent <Component5>();
            prefab.AddComponent <Component6>();
            prefab.AddComponent <Component7>();
            prefab.AddComponent <Component8>();
            prefab.AddComponent <Component9>();
            prefab.AddComponent <Component10>();
            prefab.AddComponent <Component11>();
            prefab.AddComponent <Component12>();
            prefab.AddComponent <Component13>();
            prefab.AddComponent <Component14>();
            prefab.AddComponent <Component15>();
            prefab.AddComponent <Component16>();
            prefab.AddComponent <Component17>();
            prefab.AddComponent <Component18>();
            prefab.AddComponent <Component19>();
            prefab.AddComponent <Component20>();

            var resolver = prefab.AddComponent <Resolver>();

            Injection.InvalidateCache();

            if (warmUp)
            {
                Injection.WarmUp(prefab);
            }

            Measure.Method(() =>
            {
                for (var i = 0; i < 10; i++)
                {
                    var go        = Object.Instantiate(prefab);
                    var component = go.GetComponent <CtorInjectionContainer.StringDependentComponent>();
                    CreateContainerWith <CtorInjectionContainer>();

                    go.SetActive(true);

                    Assert.That(component.Dependent, Is.Not.Null);
                    Assert.That(component.Dependent.Dependent, Is.Not.Null);
                    Assert.That(component.Dependent.Dependent.S, Is.Not.Null);
                }
            }
                           )
            .MeasurementCount(10)
            .GC()
            .Run();
        }
Esempio n. 2
0
 public static void InvalidateCache()
 {
     Injection.InvalidateCache();
 }