private static void BenchmarkBattle(int index) { SelectedBattle = Factory.Get <IBattleCollection>().Get(index); List <IPlayerBattleResult> battleResults = Factory.Get <IBenchmarkEngine>().PerformBenchmarking(SelectedBattle); IEfficiencyCalculator efficiencyCalculator = Factory.Get <IEfficiencyCalculator>(); IEfficiencyRankCollection ranks = efficiencyCalculator.RankBattleResults(battleResults); PrintBenchmarkingResults(ranks, efficiencyCalculator); }
public AccountEfficiencyCache(IEfficiencyCalculator efficiencyCalculator, IDailyQuoteStorage dailyQuoteStorage) { this.efficiencyCalculator = efficiencyCalculator; this.dailyQuoteStorage = dailyQuoteStorage; updateCacheIntervalSec = AppConfig.GetIntParam("updateCacheSec", updateCacheIntervalSec); // кэш будет создан в UpdateCacheLoop в виду большой длительности создания // стартовать прослушку cacheUpdated = false; }
public AccountEfficiencyCache(IEfficiencyCalculator efficiencyCalculator, IDailyQuoteStorage dailyQuoteStorage) { this.efficiencyCalculator = efficiencyCalculator; this.dailyQuoteStorage = dailyQuoteStorage; updateCacheIntervalSec = AppConfig.GetIntParam("updateCacheSec", updateCacheIntervalSec); // кэш будет создан в UpdateCacheLoop в виду большой длительности создания // стартовать прослушку cacheUpdated = false; }
/// <summary> /// Initialize all subsystems /// </summary> /// <param name="timeSystem"></param> /// <param name="settings"></param> public Driver(ITimeSystem timeSystem, ISettings settings) { //when reordering, be carefull, in order to pass only initialized objects this.fileManager = new FileManager(settings); this.languageSwitcher = new LanguageSwitcher(settings); //probably all of them should be properties, not fields, in order to automatically update referencies TaskCollection = LifeIdea.LazyCure.Core.Tasks.TaskCollection.Default; this.timeLogsManager = new TimeLogsManager(this.fileManager); HistoryDataProvider = new HistoryDataProvider(timeLogsManager, TaskCollection); this.timeManager = new TimeManager(timeSystem, TimeLogsManager); HistoryDataProvider.CreateSummaries(TimeManager.TimeLog); this.workingTime = new WorkingTimeForDay(TimeManager.TimeLog, TaskCollection); this.efficiencyCalculator = new EfficiencyCalculator(workingTime); ApplySettings(settings); }
private static int PrintBenchmarkHeader(IEfficiencyRankCollection efficiencyBuckets, IEfficiencyCalculator efficiencyCalculator) { Console.WriteLine(); Console.WriteLine(); string headerString = $"===== Benchmarking for '{SelectedBattle.Name}' ======"; PrintDivider(headerString.Length); Console.WriteLine(headerString); PrintDivider(headerString.Length); Console.WriteLine($"Players are grouped into ranks where each rank contains all players whose mean is {efficiencyCalculator.MarginScalar} standard deviation(s) from the most efficient mean in that rank."); Console.WriteLine(); return(headerString.Length); }
private static void PrintBenchmarkingResults(IEfficiencyRankCollection efficiencyBuckets, IEfficiencyCalculator efficiencyCalculator) { Console.ForegroundColor = INFO_COLOR; int headerLength = PrintBenchmarkHeader(efficiencyBuckets, efficiencyCalculator); int rank = 1; while (efficiencyBuckets.HasRank(rank)) { List <IPlayerBattleResult> results = efficiencyBuckets.Get(rank); Console.WriteLine($"Rank {rank}"); foreach (IPlayerBattleResult result in results) { Console.WriteLine($"\t{result.Player.Name}"); Console.WriteLine("\t\tAverage Exec Time: \t{0:0,0.000} {1}", result.Efficiency.AverageExecutionTime, timeUnits[TimeUnit]); Console.WriteLine($"\t\tMemory Allocated: \t{result.Efficiency.MemoryAllocated.ToString("N0")} {sizeUnits[SizeUnit]}"); } rank++; } PrintBenchmarkFooter(headerLength); }
public Calculator(IEfficiencyCalculator efficiencyCalculator, ILookupService lookupService) { _efficiencyCalculator = efficiencyCalculator; _lookupService = lookupService; }