我正在使用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
属性,但这意味着我需要为每个参数更改更改基准类,而不是注入不同的参数。
我的主要目标是编写基准类一次,并多次使用它来处理不同的参数。
GlobalSetup
中读取它们。在我的情况下,这些参数是在命令行上指定的。 - dashesy