Пришло время делать эксперименты. Продолжайте в том же проекте, в файле ExperimentsTask.cs
Эксперимент 1. Создание массива
В файле ArrayCreationTasks.cs есть две реализации уже знакомого вам интерфейса ITask для работы с классом Benchmark.
Оба класса создают массив в методе Run. Но один делает массив структур, а второй массив классов.
В классе ExperimentsTask реализуйте метод BuildChartDataForArrayCreation.
Этот метод должен измерять длительность работы метода Run у классов StructArrayCreationTask и ClassArrayCreationTask
с помощью Benchmark из прошлого задания.
Нужно измерить время для структур и классов всех размеров, указанных в Constants.FieldCounts.
Результаты измерения вернуть в виде объекта ChartData. Дальше в Program.cs эти результаты будут показаны на графиках.
Запустите код на исполнение. Вы должны увидеть первый график скорости работы от количества полей в классе/структуре. На нём должно быть видно, что массивы классов создаются дольше, чем массивы структур.
Эксперимент 2. Передача в метод
Аналогично в файле MethodCallTasks.cs есть ещё пара реализаций ITask.
Они вызывают метод, передавая в качестве аргумента класс или структуру с большим количеством полей.
В том же классе ExperimentsTask реализуйте метод BuildChartDataForMethodCall.
Избавьтесь от дублирования кода в методах BuildChartDataForMethodCall и BuildChartDataForArrayCreation.
Возможно, для этого понадобится создать новые классы.
Запустите код на исполнение. Вы должны увидеть второй график, показывающий, что большие классы передаются в метод быстрее, чем большие структуры.
Попробуйте объяснить наблюдаемый результат.
// Вставьте сюда финальное содержимое файла ExperimentsTask.cs
using System.Collections.Generic;
namespace StructBenchmarking
{
public class Experiments
{
Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂

