コード例 #1
0
        public IQueryable <CharacterClassViewModel> GetClasses()
        {
            var metricInfo = new HiPerfMetric("CharacterClassService.GetClasses");
            var classes    = GetClasses(metricInfo);

            _logger.Debug(metricInfo.ReportAsDefault());
            return(classes);
        }
コード例 #2
0
        public async Task <IHttpActionResult> Get()
        {
            var timer = new HiPerfMetric("Get all classes");

            timer.Start("Getting classes");
            var classes = await Task.Run(() => _characterClassService.GetClasses(timer.StartChildMetric("Service")));

            timer.Stop();
            _logger.Debug(timer.ReportAsDefault());
            return(Ok(classes));
        }
コード例 #3
0
        public void PerformanceImpactTest()
        {
            // Arrange
            var realMetric = new HiPerfMetric("PerformanceImpactTest");
            const int iterations = 1000;

            // Act
            realMetric.Start();
            for (var i = 0; i < iterations; i++)
            {
                var testMetric = new HiPerfMetric("Test");
                testMetric.Start("Step 1");
                testMetric.Stop();
                testMetric.Start("Step 2");
                testMetric.Stop();
                testMetric.Start("Step 3");
                testMetric.Stop();
            }
            realMetric.Stop();

            // Assert
            Console.WriteLine(realMetric.ReportAsDefault());
            Console.WriteLine($"Each three step metric took {(realMetric.TotalTimeInSeconds * 1000000f)/(double)iterations} microseconds");
        }