Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 4
0
 /// <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);
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 public Calculator(IEfficiencyCalculator efficiencyCalculator, ILookupService lookupService)
 {
     _efficiencyCalculator = efficiencyCalculator;
     _lookupService        = lookupService;
 }