public MetricDelta(IMetricComparison Comparison) { this.Comparison = Comparison; this.Description = Describe(Comparison); if (Comparison.LeftMetrics.OpCount != Comparison.RightMetrics.OpCount) { throw new Exception("Count mismatch"); } }
static AppMsg Describe(IMetricComparison comparison) { var title = $"{comparison.LeftTitle} / {comparison.RightTitle}"; var delta = comparison.LeftMetrics.WorkTime - comparison.RightMetrics.WorkTime; var leftDuration = comparison.LeftMetrics.WorkTime; var rightDuration = comparison.RightMetrics.WorkTime; var ratio = Math.Round((double)leftDuration.TimerTicks / (double)rightDuration.TimerTicks, 4); var description = concat( $"{title}", $" | Left Time = {leftDuration}", $" | Right Time = {rightDuration}", $" | Difference = {delta}", $" | Performance Ratio = {ratio}" ); return(AppMsg.Define(description, SeverityLevel.Benchmark)); }
public static MetricDelta CalcDelta(this IMetricComparison comparison) => MetricDelta.Calc(comparison);
public static MetricDelta Calc(IMetricComparison comparison) => new MetricDelta(comparison);