/// <summary> /// Returns a anonymous timing string for the given set of nodes (non-recursive) /// </summary> /// <param name="runs"></param> /// <returns></returns> public string GetTimingInfo(IConcurrencyResults r) { var sincl = r.SequentialRuns.InclusiveMs(); var sexcl = r.SequentialRuns.ExclusiveMs(); var pincl = r.ParallelRuns.InclusiveMs(); var pexcl = r.ParallelRuns.ExclusiveMs(); var suffix = string.Format(" {0:F}%||", r.GetStats().ParallelConcurrencyPercent); if (r.Invocations().Max > 1) { suffix += string.Format(" calls: {0}", r.Invocations().ToString(0)); } if (sexcl.DeltaRatio > DeltaAbnormalRatio) { var runTimes = r.AllRuns().Select(n => n.TicksExclusiveTotal).ToMilliseconds().Select(m => Math.Round(m)); return(string.Format("runs exclusive: {1} {0}", suffix, String.Join(" ", runTimes))); } else if (r.SequentialRuns.First().HasChildren) { return(string.Format("exclusive: {0} ||{1}|| inclusive: {2} ||{3} {4}", sexcl.ToString(DeltaSignificantRatio), pexcl.ToString(DeltaSignificantRatio), sincl.ToString(DeltaSignificantRatio), pincl.ToString(DeltaSignificantRatio), suffix)); } else { return(string.Format("{0} ||{1} {2}", sincl.ToString(DeltaSignificantRatio), pincl.ToString(DeltaSignificantRatio), suffix));; } }
public static double ParallelRealMs(this IConcurrencyResults r) { return(r.GetStats().ParallelRealMs); }
public static double FastestSequentialMs(this IConcurrencyResults r) { return(r.GetStats().SequentialMs.Min); }