入门
使用BenchmarkDotNet,请遵循以下步骤。
步骤1 安装
通过NuGet 包: BenchmarkDotNet安装 BenchmarkDotNet
PM> Install-Package BenchmarkDotNet
步骤2 设计一个基准测试
创建一个控制台应用程序,编写一个用于测试类和方法,并给方法打上
Benchmark
特性。在以下示例中,我们比较了
MD5和
SHA256加密哈希函数:
using System; using System.Security.Cryptography; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; namespace MyBenchmarks { public class Md5VsSha256 { private const int N = 10000; private readonly byte[] data; private readonly SHA256 sha256 = SHA256.Create(); private readonly MD5 md5 = MD5.Create(); public Md5VsSha256() { data = new byte[N]; new Random(42).NextBytes(data); } [Benchmark] public byte[] Sha256() => sha256.ComputeHash(data); [Benchmark] public byte[] Md5() => md5.ComputeHash(data); } public class Program { public static void Main(string[] args) { var summary = BenchmarkRunner.Run<Md5VsSha256>(); } } }
BenchmarkRunner.Run<Md5VsSha256>()
,这个调用运行你的基准测试并将结果打印到控制台。
步骤3 查看结果
查看结果,这是上面基准测试的输出结果:
BenchmarkDotNet=v0.10.1, OS=Microsoft Windows NT 6.2.9200.0 Processor=Intel(R) Core(TM) i7-4702MQ CPU 2.20GHz, ProcessorCount=8 Frequency=2143476 Hz, Resolution=466.5319 ns, Timer=TSC [Host] : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0 DefaultJob : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1586.0
Method | Mean | StdDev | Allocated |
---|---|---|---|
Sha256 | 130.5169 us | 1.8489 us | 188 B |
Md5 | 25.8010 us | 0.1757 us | 113 B |
步骤4 结果分析
在bin目录中,可以找到许多有用的文件,其中包含详细信息。例如: - 导出的Csv原始数据: Md5VsSha256-report.csv, Md5VsSha256-runs.csv - 导出的Markdown 数据: Md5VsSha256-report-default.md, Md5VsSha256-report-stackoverflow.md, Md5VsSha256-report-github.md - 普通报告和日志: Md5VsSha256-report.txt, Md5VsSha256.log - 绘图(如果已安装R):Md5VsSha256-barplot.png, Md5VsSha256-boxplot.png 等等.
更多
BenchmarkDotNet提供了许多有助于高质量性能研究的特性。如果你想了解关于BenchmarkDotNet更多的特性,可以查阅 概述。如果你有问题,请查阅 FAQ。如果你没有找到你问题的答案,可以在 gitter上提问 or在 github上创建issuce.
版权声明:
本文为智客工坊「楠木大叔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。