Часто бывает непонятно - насколько соотносятся цифры тестов, особенно если их было произведено больше двух. Для выяснения этого часто прибегают к построению графиков для результатов в единой системе координат и дальнейшему сравнительному анализу.
Самый простой способ - это визуалиазация данных в браузере, существует множество библиотек, позволяющих отрисовывать всевозможные виды графиков. Самые удобные обычно платные, бесплатные надо настраивать под свои нужды.
Остается только сформировать корректную html-страницу с подключенными библиотеками и данными измерений. Для этого можно воспользоваться функционалом пакета Leopotam.BenchCharts - он позволяет без внешних зависимостей и с минимальными трудозатратами собирать данные и генерировать контент для визуализации:
BenchCharts charts = new (); // Добавляем новый график. BenchChart chartAi = charts.NewChart () // Устанавливаем его заголовок. .SetTitle ("Оценка поведения ИИ") // Устанавливаем наименование его осей. .SetAxes ("Количество юнитов", "Опасность") // Устанавливаем подписи к меткам по оси X. .SetMarks ("0", "1", "2", "3", "4"); // Добавляем первый отчет в график. chartAi.NewReport ("Вариант 1") // Наполняем первый отчет данными. .Add (0).Add (1).Add (2).Add (3).Add (4); // Добавляем второй отчет в график. chartAi.NewReport ("Вариант 2") // Наполняем второй отчет данными. .Add (0).Add (2).Add (4).Add (6).Add (8); // Добавляем третий отчет в график. chartAi.NewReport ("Вариант 3") // Наполняем третий отчет данными. .Add (0).Add (2.5f).Add (5).Add (7.5f).Add (10); // Генерируем конечный html-файл с графиком. string html = charts.Build (); // Можем записать его в нужный файл, // чтобы открыть позже в браузере. File.WriteAllText ("Build/generated.html", html);
Если открыть сгенерированный файл, то увидим следующее (это скриншот, в браузере все векторное и масштабируется под любой размер):
Если нет желания настраивать тестовое окружение и хочется побыстрее получить результаты, то пакет предоставляет встроенный механизм тестирования. Например, мы хотим замерить скорость выполнения Math.Sin() и Math.Cos() на сотнях тысяч итераций. Реализуем тестовые случаи: