一款超级强大且简单易用的性能测试库BenchmarkDotNet(常见的性能测试)

性能测试是一个常见的功能需求,但估计很多 .NET 开发者还在使用 DateTime.Now 测试代码性能。偶尔对小段代码进行测试,这样的方法也不错。但若是测试规模比较大,需要的诊断信息更丰富,那这样简单甚至可以说简陋的方法肯定是行不通了。最好是使用专业的性能测试工具。

基本介绍

Benchmarkdotnet 是由 dotnet 官方提供的一款专门面向 .NET 平台的性能测试库,可以帮助开发者直接将任何方法转换为基准测试,跟踪分析其性能,产生可靠、准确的测试结果,并共享可重复的测量试验。 如果你熟悉单元测试,你会发现使用 BenchmarkDotNet 进行基准测试和写单元测试非常像,非常简单直观易上手。更秒的是,BenchmarkDotNet 遵循了一些性能测试的最佳实践,能够提醒纠正一些常见的错误用法。

简单示例

只需要在需要测试的方法上加上 [Benchmark] 特性,就可以将其转化为一个基准测试。以下是官方给出的简单示例:

using System; using System.Security.Cryptography; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; [RPlotExporter] public class MD5VsSha256 { private SHA256 sha256 = SHA256.Create(); private MD5 md5 = MD5.Create(); private byte[] data; [Params(1000, 10000)] public int N; [GlobalSetup] public void Setup() { data = new byte[N]; new Random(42).NextBytes(data); } [Benchmark] public byte[] Sha256() => sha256.ComputeHash(data); [Benchmark] public byte[] Md5() => md5.ComputeHash(data); } public class Program { public static void Main(string[] args) { BenchmarkRunner.Run<Md5VsSha256>(); } }

结果分析

运行上述代码后,会输出以下结果。

一款超级强大且简单易用的性能测试库BenchmarkDotNet(常见的性能测试)

可以看出,结果中简单列明了 BenchmarkDotNet 的版本,操作系统版本,CPU 类型和 .NET SDK信息。

在测试及结果表格中,显示了运行册数、消耗时间的均值、标准差和99.9%置信区间的标准误

另外,在项目的 bin/Release/(BenchmarkDotNet 需要运行在Release模式下)还生成了测试结果的 markdown 和 excel 文件。

当然,上述结果只是默认标准结果,你还可以通过配置显示更多项目,比时间消耗的中位数、秩等项目。

同时,也可以在测试类上加上 [RPlotExporter] 特性,可以在 bin 目录下输出 R 语言的绘图代码。

一款超级强大且简单易用的性能测试库BenchmarkDotNet(常见的性能测试)

总之, BenchmarkDotNet 非常简单易用:你无需成为一个专家即可写出高质量的基准测试来。

目前已经有超过 11700 款项目使用 BenchmarkDotNet 。包括微软官方项目 ASP.NET CoreML.NETEntity Framework Core, F#等, 还有大量第三方项目如 Newtonsoft.Json, Elasticsearch.Net, Dapper, Autofac, LiteDB, GraphQL for .NET, .NET Docs,,TensorFlow.NET, Apache Thrift等。

如果有性能测试的需要,强烈推荐使用!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年11月2日 上午9:51
下一篇 2022年11月2日 上午9:53

相关推荐

  • 招投标系统项目管理

    招投标系统项目管理 招投标系统是一个非常重要的项目管理工具,可以帮助企业进行更高效的招投标活动。在招投标系统中,企业可以在线提交和查看招投标信息,快速响应评委会的评分和评审意见,并…

    科研百科 2024年12月16日
    0
  • 体育科研项目管理环节

    体育科研项目管理环节的重要性 体育科研项目管理环节是体育科学研究过程中非常重要的一个环节,它关系到科研项目是否能够顺利完成,并且取得预期的成果。本文将从项目管理、团队协作、资源管理…

    科研百科 2025年2月24日
    1
  • 推荐几个写小说可以用到的软件(推荐几个写小说可以用到的软件有哪些)

    推荐几个写小说可以用到的软件(推荐几个写小说可以用到的软件有哪些) 刚准备写小说时,我就四处搜寻方便写小说的软件,直至今日,基本能固定下来,算是找到了适合自己的小说相关软件。 网络…

    科研百科 2024年3月29日
    99
  • 有什么好的项目管理软件或工具

    好的项目管理软件或工具可以帮助团队更好地管理项目进度,确保项目按时交付,并提高项目的成功率。以下是几种常见的项目管理软件或工具,供参考: 1. Microsoft Project:…

    科研百科 2024年8月14日
    32
  • 利川建南镇卫生院:做实“党建+”,让山区百姓更有“医”靠(利川市建南镇卫生院)

    湖北日报客户端讯(通讯员覃宇锋、张良前、李智)“感谢你们对我的医治和精心照顾,解除了我这一年多来承受的病痛折磨,现在感觉好多了。”躺在病床上的秦叙成向前来查房的医护人员连声道谢。近…

    科研百科 2023年3月7日
    149
  • 人才党建工作(人才党建工作汇报)

    新时代组工建设是党的建设工作的重要内容,也是推动中国特色社会主义事业发展的重要保障。随着经济和科技的不断发展,人才已经成为推动社会进步和发展的关键因素。党建工作也需要更加注重人才的…

    科研百科 2024年6月29日
    91
  • 湖南宁乡推出电脑端与手机端结合的项目管理系统

    湖南宁乡推出电脑端与手机端结合的项目管理系统 此次上线的投资项目管理系统,由该市数据资源中心牵头,市发改局、市投资促进服务中心等单位联合研发。运用这一系统,各类政府投资项目和社会投…

    科研百科 2023年9月5日
    211
  • 项目劳务管理岗位工资

    项目劳务管理岗位工资 随着现代建筑行业的快速发展,项目劳务管理岗位也越来越受到人们的关注。作为建筑行业中非常重要的一个岗位,项目劳务管理岗位的工资也随着其重要性的不断提升而变得越来…

    科研百科 5天前
    1
  • 孤岛采油厂召开党委班子成员履行党建和党风廉政建设责任情况汇报会

    近日,孤岛采油厂在机关二楼会议室召开党委班子成员履行党建和党风廉政建设责任情况汇报会,分别听取孤岛采油厂纪委上半年党风廉政工作情况及采油厂领导班子成员履行党建和党风廉政建设责任落实…

    科研百科 2023年6月10日
    559
  • 医院组织科研项目申报

    医院组织科研项目申报 随着科技的不断发展,医疗领域也在不断地探索和创新。为了促进医疗技术的发展,医院经常组织科研项目申报。科研项目申报不仅能够为医院带来经济效益,也能够为医院带来学…

    科研百科 2025年2月25日
    0