首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BenchmarkDotNet -基准多目标项目

BenchmarkDotNet -基准多目标项目
EN

Stack Overflow用户
提问于 2018-07-20 19:25:08
回答 1查看 436关注 0票数 1

我有一个针对net35、net40、net45和netstandard2.0的项目。(https://weblog.west-wind.com/posts/2017/Jun/22/MultiTargeting-and-Porting-a-NET-Library-to-NET-Core-20)。我想对我瞄准的每个dotnet版本进行基准测试,以确保我为较早版本的.Net中缺失的特性创建的多填充功能与点网功能相比执行得很好。例如,net35在System.Collections.Concurrent命名空间中没有任何类型。是否有可能使用BenchmarkDotNet进行这种类型的基准测试,如果是的话,如何进行呢?

代码语言:javascript
复制
    new CachingActivatorFactory(
#if NET35
        new ReaderWriterCache<ConstructorInfo, Func<object[], object>>(),
#else
        new ConcurrentCache<ConstructorInfo, Func<object[],object>>(), 
#endif
        new LambdaExpressionActivatorFactory(
#if NET45 || NETSTANDARD
            new IlEmitCompiler()
#else
            new SystemExpressionCompiler()
#endif  
        )
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-28 16:32:59

好吧,考虑到基准点网的每个版本所支持的内容,您将被限制在这一点上。

当前版本的0.11.5支持.net标准2.0,这将支持.net .net> 2.0.net框架> 4.6.1,因此这些将是您可以测试的目标。

因此,例如,有了它,我可以将基准测试项目定位到net461和netcoreapp2.2。您还将.net标准包括在您的列表中,您不能针对这个目标,尽管这不是一个运行时。无论如何,您必须将项目目标设置为:

代码语言:javascript
复制
<TargetFrameworks>netcoreapp2.2;net461;</TargetFrameworks>

然后用以下内容装饰您的测试课程:

代码语言:javascript
复制
[CoreJob, ClrJob]

然而,有一项工作是被限制在基准点网络库支持的常见问题中。

Q My源代码的目标是.NET框架或.NET Core的旧版本,但BenchmarkDotNet需要net461和netcoreapp2.0。在这种情况下,我如何运行基准测试? A引入额外的控制台应用程序(例如MyAwesomeLibrary.Benchmarks)是一个很好的实践,它将取决于您的代码和BenchmarkDotNet。由于用户通常在开发环境中运行基准,并且不为用户分发基准,所以这不应该是一个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51449166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档