入门

  使用BenchmarkDotNet,请遵循以下步骤。

步骤1 安装

  通过NuGet 包: BenchmarkDotNet安装 BenchmarkDotNet

    PM> Install-Package BenchmarkDotNet

  更多阅读 BenchmarkDotNet Nuget

步骤2 设计一个基准测试

  创建一个控制台应用程序,编写一个用于测试类和方法,并给方法打上 Benchmark特性。在以下示例中,我们比较了 MD5SHA256加密哈希函数:

    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版权协议,转载请附上原文出处链接及本声明。

results matching ""

    No results matching ""