BenchmarkDotNet,跳过特定运行时的基准测试



(https://benchmarkdotnet.org/(

是否可以跳过特定运行时的单个基准测试部分?

例如,我想测试 4.7.2 和 Core 3.1 的几个函数, 但一个人应该只在 Core31 上长凳

[Benchmark]
public void CoreOnly()
{
#if NETCOREAPP3_1
//some stuff i only want to test with 3.1
#endif
}
[Benchmark]
public void General()
{
//some stuff i want to test on all runtimes
}

到目前为止,我就是这样做的。 有没有更好的方法?

这在设计上是不可能的。

当运行以 XYZ 框架为目标的主机进程时,BDN 正在使用反射来获取可用方法(基准(的列表。如果使用#if定义,则每个主机进程目标框架的基准列表将有所不同。

性能存储库文档在此处介绍如何比较多个运行时性能: https://github.com/dotnet/performance/blob/master/docs/benchmarkdotnet.md#multiple-runtimes

主机进程必须是您要比较的运行时的最低公共 API 分母!

您可以在此处阅读有关测试多个运行时的更多信息: https://benchmarkdotnet.org/articles/configs/toolchains.html#multiple-frameworks-support

相关内容

  • 没有找到相关文章

最新更新