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(); }
public static void InvalidateCache() { Injection.InvalidateCache(); }