Сегодня существует очень мощный инструмент сравнительного анализа BenchmarkDotNet на базе .Net.
「BenchmarkDotNet」 Он был принят более чем в 14 300 проектах, включая многие известные проекты с открытым исходным кодом, такие как
「BenchmarkDotNet」Возможность автоматического запуска тестов во всех средах выполнения.,Сводные результаты испытаний,и распечатать сводную таблицу,Он содержит много контрольной информации:
Эти тестовые данные также можно экспортировать в различные форматы (md, html, csv, xml, json и т. д.), включая изображения:
Самое главное, что с ним очень легко писать тесты производительности. Вам нужно только установить пакет NuGet и отметить методы, которые необходимо протестировать. Attribute
,Вы можете выполнить тест.
Это можно сделать с помощью консольных или модульных тестов.
Тесты, основанные на консольном и модульном тестировании XUnit, представлены на официальном GitHub:
Далее давайте посмотрим на консольный тест:
class Program
{
static void Main(string[] args)
{
BenchmarkRunner.Run<BenchmarkTest>();
}
}
[SimpleJob(RunStrategy.ColdStart, iterationCount: 100000)]
public class BenchmarkTest
{
[Benchmark()]
public void CreateTuple()
{
var temp = new Tuple<int, string>(1, "");
}
}
В приведенном выше коде BenchmarkTest
класс для сравнительного анализа, а затем создал CreateTuple()
метод,Долженметод Создайте Tuple
Object, то мы отмечаем этот метод [Benchmark()]
,标记Долженметодиспользуется для сравнительного анализатест,затем вBenchmarkTest
отметка в классе [SimpleJob(RunStrategy.ColdStart, iterationCount: 100000)]
,Указывает да в виде холодного запуска.,Выполните эталонный метод этого класса 100 000 раз.
Далее давайте посмотрим на результаты теста, вывод:
Вы можете видеть, что вывод консоли разделен на несколько частей.
Вы можете увидеть желтую часть вывода консоли, а также таблицу ниже, которая является основным содержанием отчета. Вы можете увидеть рабочую среду и условия тестирования, когда тест выполняется в данный момент (IterationCount=100000 RunStrategy=ColdStart), и вы. Также можно увидеть конкретную производительность, например, в таблице.
Некоторые параметры в таблице кратко описаны.
на самом деле в BenchmarkDotNet
таких столбцов статистических данных около 90, вы можете обратиться сюда (https://github.com/dotnet/BenchmarkDotNet/blob/master/src/BenchmarkDotNet/Columns/Column.cs).
Ниже мы выберем некоторые часто используемые статистические столбцы и кратко объясним их:
Будут выданы некоторые предупреждения или могут быть предложены действия, например создание 100 000 в примере кода. Tuple
Объект, его реализация выполнения метода сигнализации слишком коротка, рекомендуется увеличить ее как минимум до 100.0000, используя больше операций. ms。
На самом деле, выше также есть часть содержимого консоли: 「Export」 содержание , как показано на рисунке ниже:
По умолчанию для вас генерируются отчеты в трех форматах.,CSV-формат,Формат уценки,и HTML-формат,Создать путьдабегать根目录下изBenchmarkDotNet.Artifacts\results\
документобрезатьиз BenchmarkDotNet.Console.BenchmarkTest-report
документ。
В этой статье представлены только основы сравнительного тестирования на основе консоли. Настоятельно рекомендуется читателям прочитать примеры на Github и научиться использовать больше параметров. BenchmarkDotNet
Получайте более точные, точные и надежные результаты испытаний производительности.
❝Справочник Адрес BenchmarkDotNet на Github: https://github.com/dotnet/BenchmarkDotNet На основе демо-адреса консоли на Github: https://github.com/dotnet/BenchmarkDotNet/tree/master/samples/BenchmarkDotNet.Samples. На основе демо-версии модульного теста Xunit на Github: https://github.com/dotnet/BenchmarkDotNet/tree/master/tests/BenchmarkDotNet.IntegrationTests. Ссылка на столбец статистических данных Адрес Github: https://github.com/dotnet/BenchmarkDotNet/blob/master/src/BenchmarkDotNet/Columns/Column.cs ❞