.Net性能测试工具BenchmarkDotNet学习

net,性能,测试工具,benchmarkdotnet,学习 · 浏览次数 : 98

小编点评

**.Net性能测试工具BenchmarkDotNet** **概述** BenchmarkDotNet 是一个用于性能基准测试的开源框架,可以帮助开发人员编写简洁易懂的代码,并测量和分析代码的性能表现,从而帮助开发人员优化其代码,以达到更高的性能和更好的效率。 **代码示例** ```csharp // 运行基准测试BenchmarkRunner.Run [Benchmark] [Arguments(6, 100)] public int HotColdBasicBlockReorder(int key, int data) { if (key == 1) return data - 5; if (key == 2) return data += 4; // 其他代码 ... } ``` **使用方法** 1. 将 BenchmarkDotNet NuGet 包安装到您的项目中。 2. 创建一个 `MyEnvVars` 类,并设置您要测试的环境变量。 3. 使用 `BenchmarkRunner.Run()` 方法运行基准测试。 4. 在方法中使用 `[Benchmark]` 装饰器标记方法,并指定测试参数。 **优点** * 简洁易用 * 高效 * 可扩展性 **资源** * 官方网站:https://github.com/dotnet/BenchmarkDotNetNuGet * 文档:https://github.com/dotnet/BenchmarkDotNet/wiki * 示例代码:raokun.top/raokun/archives/net-xing-neng-ce-shi-gong-ju-benchmarkdotnet-xue-xi

正文

.Net性能测试工具BenchmarkDotNet学习

BenchmarkDotNet 是一个用于性能基准测试的开源框架。它可以让开发人员编写简单易懂的代码,并测量和分析这些代码的性能表现,从而帮助开发人员优化其代码,以达到更高的性能和更好的效率。

源码地址:https://github.com/dotnet/BenchmarkDotNet

NuGet地址:https://www.nuget.org/packages/BenchmarkDotNet

 

  1. 用起来还比较简单,在对应的method上面打上[Benchmark]标记即可;

  2. 通过var summary = BenchmarkRunner.Run();来启动;

  3. 要求class和method必须是public;

  4. 要求程序必须是Release;

  5. 会自动将程序中打标记的对应模块跑很多遍,最后给出均值和偏差;

项目中添加BenchmarkDotNet

NuGet\Install-Package BenchmarkDotNet -Version 0.13.5
<PackageReference Include="BenchmarkDotNet" Version="0.13.5" />

 

 

代码示例

代码来源于最近看的冯辉的 《.NET框架设计与实现》附源码:


using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Running;

//运行基准测试
BenchmarkRunner.Run<PgoBenchmarks>();

[Config(typeof(MyEnvVars))]
public class PgoBenchmarks
{
   // 自定义配置环境 "Default vs DPGO"
   class MyEnvVars : ManualConfig
  {
       public MyEnvVars()
      {
           // 使用默认模式
           AddJob(Job.Default.WithId("Default mode"));
           // 使用DPGO模式模式
           AddJob(Job.Default.WithId("Dynamic PGO")
              .WithEnvironmentVariables(
                   new EnvironmentVariable("DOTNET_TieredPGO", "1"),
                   new EnvironmentVariable("DOTNET_TC_QuickJitForLoops", "1"),
                   new EnvironmentVariable("DOTNET_ReadyToRun", "0")));

      }
  }

  [Benchmark]
  [Arguments(6, 100)]
   public int HotColdBasicBlockReorder(int key, int data)
  {
       if (key == 1)
           return data - 5;
       if (key == 2)
           return data += 4;
       if (key == 3)
           return data >> 3;
       if (key == 4)
           return data * 2;
       if (key == 5)
           return data / 1;
       return data; // 默认key为6,所以会使用返回data
  }
}

 

运行结果

 

 传送门:https://raokun.top/raokun/archives/net-xing-neng-ce-shi-gong-ju-benchmarkdotnet-xue-xi

与.Net性能测试工具BenchmarkDotNet学习相似的内容:

.Net性能测试工具BenchmarkDotNet学习

.Net性能测试工具BenchmarkDotNet学习 BenchmarkDotNet 是一个用于性能基准测试的开源框架。它可以让开发人员编写简单易懂的代码,并测量和分析这些代码的性能表现,从而帮助开发人员优化其代码,以达到更高的性能和更好的效率。 源码地址:https://github.com/d

[转帖]【存储测试】cosbench存储性能测试工具

一、前言 参考资料: https://blog.csdn.net/QTM_Gitee/article/details/100067724 https://github.com/intel-cloud/cosbench/blob/master/COSBenchUserGuide.pdf COSBenc

[转帖]性能测试工具netperf安装使用

https://blog.51cto.com/dingtongxue1990/1853714 netperf工具使用 一、安装 1,下载 liunx下载地址: ftp://ftp.netperf.org/netperf/ windows版下载地址: ftp://ftp.netperf.org/net

【转帖】Linux性能优化(一)——stress压力测试工具

https://blog.csdn.net/a642960662/category_11641226.html 一、stress简介 1、stress简介 stress是Linux的一个压力测试工具,可以对CPU、Memory、IO、磁盘进行压力测试。 2、stress安装 安装: sudo yum

[转帖]FIO – IO压力测试工具

`https://blog.csdn.net/younger_china/article/details/71129541` 《存储工具系列文章》主要介绍存储相关的测试和调试工具,包括不限于dd、fio、vdbench、iozone、iometer、cosbench等性能负载工具,及strace等调

[转帖]tidb数据库5.4.3和6.5.3版本性能测试对比

https://tidb.net/blog/5454621f 一、测试需求: 基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做个压力测试已验证2个版本之间的性能差异。 二、测试目的: 验证tidb数据库5.4.3和6.5.3版本性

[翻译].NET 8 的原生AOT及高性能Web开发中的应用[附性能测试结果]

随着 .NET 8 的发布,微软迈出了重要一步,为 ASP.NET Core 引入了原生的 Ahead-of-Time (AOT) 编译。这一进步不仅提高了应用程序的性能,还简化了开发过程,标志着 .NET 生态系统进入了新的时代。

OpenEuler2203 基于容器和本地文件部署Redis Cluster的过程以及简单性能测试

背景 其实文件搭建和集群搭建没有任何区别 这次用先用容器搭建出来,然后测试一下性能 想着再使用本地部署的方式搭建一下. 两项验证容器和基于文件的搭建的性能差异 部分资料来源: https://blog.csdn.net/weixin_54441446/article/details/12477254

[转帖]SpecCPU2017 测试cpu性能

https://www.bbsmax.com/A/GBJrxP1Ed0/ SpecCPU介绍见: https://blog.csdn.net/qq_36287943/article/details/103601539官网:https://spec.org/ 1、SpecCPU2017是一套CPU子系

.NET Aspire 预览版 6 发布

.NET Aspire 预览版 6 引入了一系列重大更新,主要包括 API 的重大更改、安全性和可靠性的提升、新的资源和组件、应用程序主机的更新、测试支持、模板更新、组件更新、Azure 配置包的更新以及 Azure 开发者 CLI 对多个端点的支持。这些更新旨在提高 .NET Aspire 的性能