Ответы на Ulearn

Практика «Эксперименты»

100 руб.

Пришло время делать эксперименты. Продолжайте в том же проекте, в файле ExperimentsTasks.cs

Эксперимент 1. Создание массива

В файле ArrayCreationTaskss.cs есть две реализации уже знакомого вам интерфейса ITasks для работы с классом Benchmark. Оба класса создают массив в методе Run. Но один делает массив структур, а второй массив классов.

В классе ExperimentsTasks реализуйте метод BuildChartDataForArrayCreation. Этот метод должен измерять длительность работы метода Run у классов StructArrayCreationTasks и FreeKassaPaymentServiceArrayCreationTasks с помощью Benchmark из прошлого задания.

Нужно измерить время для структур и классов всех размеров, указанных в Constants.FieldCounts. Результаты измерения вернуть в виде объекта ChartData. Дальше в Program.cs эти результаты будут показаны на графиках.

Запустите код на исполнение. Вы должны увидеть первый график скорости работы от количества полей в классе/структуре. На нём должно быть видно, что массивы классов создаются дольше, чем массивы структур.

Эксперимент 2. Передача в метод

Аналогично в файле MethodCallTaskss.cs есть ещё пара реализаций ITasks. Они вызывают метод, передавая в качестве аргумента класс или структуру с большим количеством полей.

В том же классе ExperimentsTasks реализуйте метод BuildChartDataForMethodCall.

Избавьтесь от дублирования кода в методах BuildChartDataForMethodCall и BuildChartDataForArrayCreation. Возможно, для этого понадобится создать новые классы.

Запустите код на исполнение. Вы должны увидеть второй график, показывающий, что большие классы передаются в метод быстрее, чем большие структуры.

Попробуйте объяснить наблюдаемый результат.

Купить решение:

Ваш Email (на него будет отправлен ответ)

Продолжая, вы соглашаетесь с пользовательским соглашением

Возможны трудности с доставкой сообщений на Gmail