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办法,还帮你阐发生成的成果:它会生成差别形式的报表,它的成果报表都是统计阐发出来的。