C#性能测试BenchmarkDotnet

2个月前 (11-17 23:50)阅读2回复0
丸子
丸子
  • 管理员
  • 注册排名9
  • 经验值99875
  • 级别管理员
  • 主题19975
  • 回复0
楼主

1.简介

在我们开发高性能代码时,需要各类针对性能优化停止编码。那么若何才气晓得我们所加的代码能否有性能方面的正向优化呢?有了BenchmarkDotNet,做性能比照测试就十分容易了,只需要把你的测试办法加上特征[Benchmark], 想做差别.net平台的性能测试,好比传统的 .NET Framework, .NET Core,.NET 5 ~ 7,Mono,那些都没问题。

撑持的运行时: .NET 5+、.NET Framework 4.6.1+、.NET Core 2.0+、Mono、NativeAOT撑持的语言 :C#、F#、Visual Basic撑持的操做系统 :Windows、Linux、macOS撑持的系统构造: x86、x64、ARM、ARM64、Wasm 和 LoongArch64

2.详细内容

官方地址地址:/

nuget安拆:

测试代码编写:

编写测试代码时,需要留意在SimpleJob特征中需要指定框架版本。例如我那里利用的是.NET 6框架那么就要指定为RuntimeMoniker.Net60。

usingBenchmarkDotNet. Attributes;

usingBenchmarkDotNet. Jobs;

usingSystem. Security. Cryptography;

[ SimpleJob( RuntimeMoniker. Net60)]

[ RPlotExporter]

展开全文

publicclassMd5VsSha256

privateSHA256sha256=SHA256. Create;

privateMD5md5=MD5. Create;

privatebyte[] data;

[ Params( 1000, 10000)]

publicintN;

[ GlobalSetup]

publicvoidSetup

data=newbyte[ N];

newRandom( 42). NextBytes( data);

[ Benchmark]

publicbyte[] Sha256=sha256. ComputeHash( data);

[ Benchmark]

publicbyte[] Md5=md5. ComputeHash( data);

}代码挪用:usingBenchmarkDotNet. Running;

namespaceConsoleApp1

internalclassProgram

staticvoidMain( string[] args)

Console. WriteLine( "Start"+DateTime. Now. ToString);

varsummary=BenchmarkRunner. RunMd5VsSha256;

Console. WriteLine( "END"+DateTime. Now. ToString);

}运行效果:

在运行之前需要将应用法式编译为release版本,不然会呈现异常。

BenchmarkDotNet 不单单是帮你运行benchmark办法,还帮你阐发生成的成果:它会生成差别形式的报表,它的成果报表都是统计阐发出来的。

0
回帖

C#性能测试BenchmarkDotnet 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息