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 | BenchmarkDotNet=v0.9.2.0 |
Method | Median | StdDev | |
---|---|---|---|
Md5 | 21.8816 us | 0.6091 us | |
Sha256 | 123.4171 us | 6.7846 us |
可以在程序的输出目录下的log文件中看到上面所说的每个过程的详细信息。
其他配置
BenchmarkDotNet还有很多可以配置的地方,可以参见主页的介绍。
原文地址:http://fresky.github.io/2016/03/06/use-benchmarkdotnet-for-csharp-benchmark/
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注