public MetricSummary(Metrics <T> Metrics) { this.Metrics = Metrics; this.OpId = Metrics.OpId; this.OpCount = Metrics.OpCount; this.WorkTime = Metrics.WorkTime; this.Description = MetricSummary.BenchmarkEnd(this.OpId, OpCount, WorkTime); }
public MetricComparison(MetricSummary <T> LeftBench, MetricSummary <T> RightBench) { this.LeftBench = LeftBench; this.RightBench = RightBench; if (LeftBench.OpCount != RightBench.OpCount) { throw new Exception("OpCount mismatch"); } var leftTicks = (double)LeftBench.Metrics.WorkTime.TimerTicks; var rightTicks = (double)RightBench.Metrics.WorkTime.TimerTicks; this.Ratio = Math.Round(leftTicks / rightTicks, 4); }
public MetricComparison(MetricSummary LeftSummary, MetricSummary RightSummary) { this.LeftSummary = LeftSummary; this.RightSummary = RightSummary; this.Ratio = LeftSummary.WorkTime / RightSummary.WorkTime; }
public static MetricComparison <T> Define <T>(MetricSummary <T> LeftBench, MetricSummary <T> RightBench) where T : struct => new MetricComparison <T>(LeftBench, RightBench);
public static MetricComparison Define(MetricSummary LeftBench, MetricSummary RightBench) => new MetricComparison(LeftBench, RightBench);
public static MetricSummary Summarize(this IMetrics metrics) => MetricSummary.Define(metrics);
public static MetricSummary <T> Summarize <T>(this Metrics <T> metrics) where T : struct => MetricSummary.Define(metrics);