如何在线生成图表(免费报表生成软件推荐)

起因 BenchmarkDotNet支持将性能测试的结果导出为多种格式,常用的一般为html/csv,其实BenchmarkDotNet支持生成很多种文件格式. 支持的文件格式: BenchmarkDotNet支持生成很多种文件 BenchmarkDotNet生成图表是依赖R的,BenchmarkDotNet只是生成R的脚本文件,需要R执行脚本生成图表. 测试代码 usingSystem.Runt…

起因

BenchmarkDotNet支持将性能测试的结果导出为多种格式,常用的一般为html/csv,其实BenchmarkDotNet支持生成很多种文件格式.

支持的文件格式:如何在线生成图表(免费报表生成软件推荐)

BenchmarkDotNet支持生成很多种文件

BenchmarkDotNet生成图表是依赖R的,BenchmarkDotNet只是生成R的脚本文件,需要R执行脚本生成图表.

测试代码

using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Exporters;
using BenchmarkDotNet.Exporters.Csv;

namespace dotnet_perf
{
    [RPlotExporter] //生成r脚本文件
    [MemoryDiagnoser]
    [DisassemblyDiagnoser(printSource: true)]
    [Config(typeof(Config))]
    public class MethodInlineTest
    {
        [Params(10000)]
        public int Count { get; set; }

        public Random Random = new Random();



        [Benchmark]
        public void AggressiveInlining()
        {
            for (int i = 0; i < Count; i++)
            {
                int a = Random.Next(1, 100);
                int b = Random.Next(1, 100);
                int c = AggressiveInliningTest(a, b);
            }
        }

        [Benchmark]
        public void AggressiveOptimization()
        {
            for (int i = 0; i < Count; i++)
            {
                int a = Random.Next(1, 100);
                int b = Random.Next(1, 100);
                int c = AggressiveOptimizationTest(a, b);
            }
        }

        [Benchmark]
        public void NoInlining()
        {
            for (int i = 0; i < Count; i++)
            {
                int a = Random.Next(1, 100);
                int b = Random.Next(1, 100);
                int c = NoInliningnTest(a, b);
            }
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public int AggressiveInliningTest(int a, int b)  //求数的大小
        {
            return a > b ? a : b;
        }

        [MethodImpl(MethodImplOptions.AggressiveOptimization)]
        public int AggressiveOptimizationTest(int a, int b)  //求数的大小
        {
            return a > b ? a : b;
        }

        [MethodImpl(MethodImplOptions.NoInlining)]
        public int NoInliningnTest(int a, int b)  //求数的大小
        {
            return a > b ? a : b;
        }


        private class Config : ManualConfig
        {
            public Config()
            {
                AddExporter(CsvMeasurementsExporter.Default); //生成csv文件,r脚本生成图表需要
                AddExporter(RPlotExporter.Default); //使用r默认的配置

            }
        }
    }
}
#执行R脚本
Rscript.exe .BuildPlots.R

看BenchmarkDotNet生成的图表

如何在线生成图表(免费报表生成软件推荐)

BenchmarkDotNet 生成图1如何在线生成图表(免费报表生成软件推荐)

BenchmarkDotNet 生成图2

本文来自投稿,不代表来拓客立场,如若转载,请注明出处:https://www.laituoke.com/ltk/4797.html