public static ChartData BuildChartDataForArrayCreation( IBenchmark benchmark, int repetitionsCount) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); foreach (var size in Constants.FieldCounts) { var classArray = new ClassArrayCreationTask(size); var structArray = new StructArrayCreationTask(size); var classTime = benchmark.MeasureDurationInMs(classArray, repetitionsCount); var structTime = benchmark.MeasureDurationInMs(structArray, repetitionsCount); classesTimes.Add(new ExperimentResult(size, classTime)); structuresTimes.Add(new ExperimentResult(size, structTime)); } return(new ChartData { Title = "Create array", ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public static ChartData BuildChartDataForMethodCall( IBenchmark benchmark, int repetitionsCount) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); foreach (var size in Constants.FieldCounts) { var methodCallClass = new MethodCallWithClassArgumentTask(size); var methodCallStruct = new MethodCallWithStructArgumentTask(size); var classTime = benchmark.MeasureDurationInMs(methodCallClass, repetitionsCount); var structTime = benchmark.MeasureDurationInMs(methodCallStruct, repetitionsCount); classesTimes.Add(new ExperimentResult(size, classTime)); structuresTimes.Add(new ExperimentResult(size, structTime)); } return(new ChartData { Title = "Call method with argument", ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public ChartDataCreation( IBenchmark benchmark, int repetitionsCount, Func <int, ITask> structTask, Func <int, ITask> classTask) { foreach (var size in Constants.FieldCounts) { var time = benchmark.MeasureDurationInMs(structTask(size), repetitionsCount); structuresTimes.Add(new ExperimentResult(size, time)); time = benchmark.MeasureDurationInMs(classTask(size), repetitionsCount); classesTimes.Add(new ExperimentResult(size, time)); } }
public static ChartData BuildChartsDataForClasses(IBenchmark benchmark, int repetitionsCount, bool isMethodCaller, string titleName) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); foreach (var size in Constants.FieldCounts) { var methods = new CompariableMethods(size, isMethodCaller); classesTimes.Add(new ExperimentResult(size, benchmark.MeasureDurationInMs(methods.Classes, repetitionsCount))); structuresTimes.Add(new ExperimentResult(size, benchmark.MeasureDurationInMs(methods.Structures, repetitionsCount))); } return(new ChartData { Title = titleName, ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public static ChartData ConductAnExperiment( IBenchmark benchmark, int repetitionsCount, ITaskFactory taskFactory, string title) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); foreach (var size in Constants.FieldCounts) { classesTimes.Add(new ExperimentResult(size, (benchmark.MeasureDurationInMs(taskFactory.CreateNewTask(size, "Class"), repetitionsCount)))); structuresTimes.Add(new ExperimentResult(size, benchmark.MeasureDurationInMs(taskFactory.CreateNewTask(size, "Structure"), repetitionsCount))); } return(new ChartData { Title = title, ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public static ChartData BuildChartData(string title, IFact fact, IBenchmark benchmark, int repetitionsCount) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); foreach (var sz in Constants.FieldCounts) { classesTimes.Add(new ExperimentResult(sz, (benchmark.MeasureDurationInMs(fact.CreateTask(sz, "Class"), repetitionsCount)))); structuresTimes.Add(new ExperimentResult(sz, benchmark.MeasureDurationInMs(fact.CreateTask(sz, "Structure"), repetitionsCount))); } return(new ChartData { Title = title, ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public static ChartData BuildChartDataForArrayCreation( IBenchmark benchmark, int repetitionsCount) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); for (var i = 16; i <= 512; i *= 2) { classesTimes.Add(new ExperimentResult (i, benchmark.MeasureDurationInMs (new ClassArrayCreationTask(i), repetitionsCount))); structuresTimes.Add(new ExperimentResult (i, benchmark.MeasureDurationInMs (new StructArrayCreationTask(i), repetitionsCount))); } return(new ChartData { Title = "Create array", ClassPoints = classesTimes, StructPoints = structuresTimes, }); }
public static ChartData BuildChartDataForMethodCall( IBenchmark benchmark, int repetitionsCount) { var classesTimes = new List <ExperimentResult>(); var structuresTimes = new List <ExperimentResult>(); for (var i = 16; i <= 512; i *= 2) { classesTimes.Add(new ExperimentResult (i, benchmark.MeasureDurationInMs (new MethodCallWithClassArgumentTask(i), repetitionsCount))); structuresTimes.Add(new ExperimentResult (i, benchmark.MeasureDurationInMs (new MethodCallWithStructArgumentTask(i), repetitionsCount))); } return(new ChartData { Title = "Call method with argument", ClassPoints = classesTimes, StructPoints = structuresTimes, }); }