NetCore Benchmark 基准测试

基于NetCore的基准测试Demo(控制台程序)

创建控制台程序,输入工程名称    LinqConsole

通过NuGet引用BenchmarkDotNet至工程中

编写测试代码  类:Benchmarks.cs

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;

namespace LinqConsole;

//[SimpleJob(RuntimeMoniker.Net50)]  支持多平台测试,需要在工程。csproj文件中增加平台,例如:<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
[SimpleJob(RuntimeMoniker.Net60)]
[MemoryDiagnoser(false)]
public class Benchmarks
{
    [Params(100)] 
    public int Size { get; set; }

    private IEnumerable<int> _items;

    [GlobalSetup]
    public void SetUp()
    {
        _items = Enumerable.Range(1, Size).ToArray();
    }

    [Benchmark]
    public int Min() => _items.Min();
    
    [Benchmark]
    public int Max() => _items.Max();
    
    [Benchmark]
    public double Avg() => _items.Average();
    
    [Benchmark]
    public int Sum() => _items.Sum();
}

在入口文件中加入启动:BenchmarkRunner.Run<Benchmarks>();

 

运行项目:

可查看运行时长以及分配内存字节

 

posted @ 2022-11-05 12:37  Jason.裕哥  阅读(120)  评论(0编辑  收藏  举报