示例#1
0
 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));
 }
示例#2
0
 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));
        }
示例#4
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.Generations()[1].MeanPauseDurationMSec);
 }
示例#5
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.Stats().MaxPauseDurationMSec);
 }
示例#6
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs
            .Where(gc => gc.GlobalHeapHistory != null)
            .Count(gc => (gc.GlobalHeapHistory.GlobalMechanisms & GCGlobalMechanisms.CardBundles) != 0));
 }
示例#7
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs.AverageOrDefault(gc => gc.GenFragmentationMB(Gens.Gen2)));
 }
示例#8
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs.Count());
 }
示例#9
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.DurationMsec);
 }
示例#10
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.BackgroundGC && gc.Generation == 2));
 }
示例#11
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.NonConcurrentGC && gc.Generation == 1));
 }
示例#12
0
 public override double GetValue(IterationDataSource data)
 {
     return(data.Trace.GC.GCs.Count(gc => gc.Type == GCType.ForegroundGC));
 }