Практика «Эксперименты»
Пришло время делать эксперименты. Продолжайте в том же проекте, в файле 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
Практика, практика и еще раз практика!
Войдите или зарегистрируйтесь, чтобы отвечать на тесты и решать задачи.