protected override void ApplicationStarted() { _availableComponents = _groupFactory.GetComponentTypes .Select(x => Activator.CreateInstance(x) as IComponent) .ToArray(); var groups = _groupFactory.CreateTestGroups().ToArray(); foreach (var group in groups) { EntityCollectionManager.CreateObservableGroup(group); } var firstRun = ProcesEntities(10000); var secondRun = ProcesEntities(10000); var thirdRun = ProcesEntities(10000); Console.WriteLine($"Finished In: {(firstRun + secondRun + thirdRun).TotalSeconds}s"); Console.WriteLine($"First Took: {firstRun.TotalSeconds}s"); Console.WriteLine($"Second Took: {secondRun.TotalSeconds}s"); Console.WriteLine($"Third Took: {thirdRun.TotalSeconds}s"); Console.WriteLine("Press Enter To Exit"); Console.ReadKey(); }