https://github.com/victortzeng/simplebenchmark
https://github.com/victortzeng/simplebenchmark
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/victortzeng/simplebenchmark
- Owner: VictorTzeng
- License: mit
- Created: 2018-08-27T12:09:41.000Z (about 7 years ago)
- Default Branch: dev
- Last Pushed: 2017-06-22T15:36:38.000Z (over 8 years ago)
- Last Synced: 2025-06-12T05:05:55.559Z (4 months ago)
- Language: C#
- Size: 29.3 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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);
```