An open API service indexing awesome lists of open source software.

https://github.com/victortzeng/simplebenchmark


https://github.com/victortzeng/simplebenchmark

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

## SimpleBenchmark
SimpleBenchmark是一个简单的 C# 程序性能测试库,基于老赵[CodeTimer](http://blog.zhaojie.me/2009/03/codetimer.html)的性能统计和分析,支持框架版本.NETFramework 4.5及以上。SimpleBenchmark的API参考[BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet)(BenchmarkDotNet是一个功能强大的性能测试库,但BenchmarkDotNet仅支持.NETFramework 4.6和.NETCoreApp 1.1及以上,不支持.NETFramework 4.5┬_┬)。
## 开始使用
1. 使用nuget安装[SimpleBenchmark](http://www.nuget.org/packages/SimpleBenchmark.Core/)
```
PM> Install-Package SimpleBenchmark.Core
```
2. 创建`benchmark`类
```cs
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)
{
BenchmarkRunner.Initialize();

BenchmarkRunner.Run();

Console.ReadKey();
}
}
}
```
3. `Benchmark`名称和执行次数
[BenchmarkAttribute](https://github.com/liuhaoyang/SimpleBenchmark/blob/master/src/SimpleBenchmark.Core/BenchmarkAttribute.cs)接受`Name`和`Iteration`参数来指定测试的名称和执行次数。下面的代码演示了指定测试名称为`Md5 Benchmark`并执行`1000000`次。
```cs
[Benchmark("Md5 Benchmark",1000000)]
public byte[] Md5() => md5.ComputeHash(data);
```