Как benchmarkdotnet передает аргументы?

BenchmarkDotNet передает аргументы через атрибуты, которые вы добавляете к вашему классу или методу тестирования производительности. Наиболее часто используемым атрибутом для передачи аргументов является ParamsAttribute.

Чтобы передать аргументы через ParamsAttribute, вам нужно предоставить набор значений, которые вы хотите использовать для параметризации вашего теста. Например:

[Benchmark]
[Params(1, 2, 3)]
public void MyBenchmark(int param)
{
    // Ваш код для тестирования
}

В этом примере тест MyBenchmark будет запущен трижды с параметрами 1, 2 и 3.

Кроме того, BenchmarkDotNet также поддерживает передачу аргументов через ArgumentsAttribute. Этот атрибут позволяет вам передавать более сложные наборы аргументов для выполнения вашего теста.

Пример с использованием ArgumentsAttribute:

[Benchmark]
[Arguments(1, "abc")]
[Arguments(2, "def")]
public void MyBenchmark(int number, string text)
{
    // Ваш код для тестирования
}

В этом примере тест MyBenchmark будет запущен дважды, первый раз с аргументами 1 и "abc", а второй раз с аргументами 2 и "def".

Таким образом, BenchmarkDotNet предоставляет удобные способы передачи аргументов для параметризации ваших тестов производительности, что позволяет вам более гибко настраивать и анализировать производительность вашего кода.