Я использую библиотеку BenchmarkDotNet для проверки производительности и хочу ввести параметры при использовании класса теста. Примерно так:
public class Program
{
public static void Main()
{
var benchmark1 = new BenchmarkWithParameter(100);
BenchmarkRunner.Run(benchmark1);
var benchmark2 = new BenchmarkWithParameter(200);
BenchmarkRunner.Run(benchmark2);
}
}
public class BenchmarkWithParameter
{
public BenchmarkWithParameter(int waitTime)
{
WaitTime = waitTime;
}
public int WaitTime { get; }
[Benchmark]
public void Run()
{
Thread.Sleep(WaitTime);
}
}
Есть ли способ достичь этого?
Я знаю, что могу использовать атрибуты Params
, ParamsSource
и ArgumentsSource
, но это значит, чтоМне нужно менять эталонный класс для каждого изменения параметра, а не вводить разные параметры.
Моя главная цель - написать эталонный класс один раз и использовать его много раз с разными параметрами.