【发布时间】:2020-02-27 01:50:08
【问题描述】:
我正在使用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中读取它们,我需要它们来实例化一个类。在我的例子中,参数是在命令行中指定的。
标签: c# benchmarkdotnet