BenchmarkDotnet-显示内存

在基准测试中, 除了运行耗时之外, 使用内存也是一项比较重要的指标, 下面介绍一下如何在最终的结果中展示内存方面的使用情况

// 由于现在需要展示内存方面的指标, 原来的字符串判空由于使用内存较少, 不适合用来做测试
// 因此定义了以下拥有相同属性的结构体和类
public struct SModel
{
    public int Prop1 { get; set; }
    public int Prop2 { get; set; }
    public int Prop3 { get; set; }
}
public class CModel
{
    public int Prop1 { get; set; }
    public int Prop2 { get; set; }
    public int Prop3 { get; set; }
}
[SimpleJob(RuntimeMoniker.Net70)]
[SimpleJob(RuntimeMoniker.Net60, baseline: true)]
[MemoryDiagnoser]
public class Test
{
    public int Count = 1000;
    [Benchmark(Baseline = true)]
    public void TestStruct()
    {
        var data = new List<SModel>();
        for (var i = 0; i < Count; i++)
            data.Add(new SModel());
    }
    [Benchmark]
    public void TestClass()
    {
        var data = new List<CModel>();
        for (var i = 0; i < Count; i++)
            data.Add(new CModel());
    }
}

Test类打上[MemoryDiagnoser]特性, 最终生成的表格中就会出现内存方面的数据

MethodRuntimeMeanErrorStdDevRatioRatioSDGen0AllocatedAlloc Ratio
TestStruct.NET 6.03.284 us0.0831 us0.0549 us1.000.0011.805424.2 KB1.00
TestClass.NET 6.07.945 us0.2639 us0.1380 us2.430.0723.201147.46 KB1.96
TestStruct.NET 7.03.227 us0.0690 us0.0457 us0.980.0211.797324.2 KB1.00
TestClass.NET 7.07.100 us0.6302 us0.4168 us2.160.1123.200847.46 KB1.96
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值