我打算用BenchmarkDotNet来测试各种项目中的一些方法。
因为它可能像在方法中添加Benchmark
属性一样简单,但我对在我工作的项目中使用它有很大疑问。
该项目由两部分组成:
本机部分初始化.Net部分并通过interop 调用其方法。
因此,使用测试项目并添加对.Net项目的引用并启动基准测试应用程序将无法正常工作,因为应首先启动本机代码。
任何想法,如果我能以某种方式跳过本机部分并使 BenchmarkDotNet 仅测试方法?或者我应该寻找另一种基准测试方法?
答案 0 :(得分:1)
[Benchmark]
属性标记它。如果它足以运行初始化代码一次(对于许多基准测试迭代):
[GlobalSetup]
属性如果它不足以运行初始化一次,并且每次在基准方法调用之前都需要调用它:
[IterationSetup]
属性标记它。将运行策略设置为RunStrategy.Monitoring
。您可以在我们的official docs
中详细了解设置和清理答案 1 :(得分:0)
查看BenchmarkDotNet的规范,似乎您可以将任何方法标记为基准,它不必是您的本机应用程序调用的实际方法。 与单元测试类似,您可以编写基准测试,使用有效参数调用.NET代码中的方法,否则这些参数将来自本机核心。
我建议创建一个单独的Benchmark项目,类似于你如何拥有一个单独的测试项目。