public override double GetValue(IterationDataSource data) { // TODO(segilles, perf) this is very inefficient return(data.Trace.GC.GCs .Where(gc => gc.Generation == 2 && gc.Type == GCType.BackgroundGC) .AverageOrDefault(gc => gc.PauseDurationMSec)); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs .Where(gc => gc.HeapStats != null) .AverageOrDefault(gc => gc.GenSizeAfterMB(Gens.Gen0) + gc.GenSizeAfterMB(Gens.Gen1) + gc.GenSizeAfterMB(Gens.GenLargeObj))); }
public BenchmarkDataSource(string rootDir, string benchmarkFolder) { Logger.Log($"Processing individual benchmark {benchmarkFolder}"); // there should be numerically indexed folders in this directory. //Parallel.ForEach(Directory.EnumerateDirectories(benchmarkFolder), iterFolder => foreach (var iterFolder in Directory.EnumerateDirectories(benchmarkFolder)) { var ds = new IterationDataSource(rootDir, iterFolder); lock (Iterations) { Iterations.Add(ds); } } ; string benchmarkJsonFile = Path.Combine(benchmarkFolder, Constants.BenchmarkJsonName); Debug.Assert(File.Exists(benchmarkJsonFile)); Benchmark = JsonConvert.DeserializeObject <Benchmark>(File.ReadAllText(benchmarkJsonFile)); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.Generations()[1].MeanPauseDurationMSec); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.Stats().MaxPauseDurationMSec); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs .Where(gc => gc.GlobalHeapHistory != null) .Count(gc => (gc.GlobalHeapHistory.GlobalMechanisms & GCGlobalMechanisms.CardBundles) != 0)); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs.AverageOrDefault(gc => gc.GenFragmentationMB(Gens.Gen2))); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs.Count()); }
public override double GetValue(IterationDataSource data) { return(data.DurationMsec); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.BackgroundGC && gc.Generation == 2)); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.NonConcurrentGC && gc.Generation == 1)); }
public override double GetValue(IterationDataSource data) { return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.ForegroundGC)); }