BenchmarkDotNet是一个用MIT协议开源的C#程序性能测试的一个库,非常简单易用。
用法
安装NuGet包,BenchmarkDotNet
在需要做性能测试的方法前加上属性
[Benchmark]
。在Main函数调用性能测试
var summary = BenchmarkRunner.Run<Md5VsSha256>();
。
工作原理
BenchmarkDotNet为每一个要做性能测试的方法生成了一个单独的项目,放在程序的输出目录下,用Release模式编译,并且运行多次来统计性能测试结果。
每次运行都包含以下几个步骤。
-
Pilot: 决定运行几次。
IdleWarmup, IdleTarget:评估BenchmarkDotNet这个工具带来的额外开销。
MainWarmup:测试热身。
MainTarget:测试。
Result:测试结果减去BenchmarkDotNet带来的额外开销。
生成测试报告。有各种格式,包括html格式,markdown格式(缺省风格,github风格,stackoverflow风格),txt格式,csv格式。比如如下就是我运行示例代码后得到的github风格的输出。
1 |