BenchmarkDotNet(性能测试)

转载自:http://www.cnblogs.com/Leo_wl/p/5918279.html

.NET Core性能测试组件BenchmarkDotNet 支持.NET Framework Mono

.NET Core 超强性能测试组件BenchmarkDotNet 支持Full .NET Framework, .NET Core (RTM), Mono。

BenchmarkDotNet支持 C#, F#, 和Visual Basic,可以跨平台运行。

而且支持各种报表导出,相当的方便。

GitHub: https://github.com/PerfDotNet/BenchmarkDotNet

下面我们来实际使用及体验。

本篇主要讲解在.NET Core 应用中使用 BenchmarkDotNet。

新建应用

首先我们新建一个.NET Core 控制台应用 NETCoreTest

安装BenchmarkDotNet

使用NuGet 命令行安装:

Install-Package BenchmarkDotNet

也可以在NuGet 管理器中搜索安装

编写代码

安装好以后我们就可以编写测试代码

新建一个 Md5VsSha256 类 ,在方法中加入Benchmark 特性

    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()
        {
            return sha256.ComputeHash(data);
        }

        [Benchmark]
        public byte[] Md5()
        {
            return md5.ComputeHash(data);
        }
    }

执行测试

下面我们来执行

在Program.cs Main 中加入如下代码:

var summary = BenchmarkRunner.Run<Md5VsSha256>();

然后执行程序,可以使用dotnet run 也可以使用vs 的DEBUG。

下面是控制台输出的结果

执行完以后在程序目录下会有一个BenchmarkDotNet.Artifacts 文件夹。

里面也会有对应的测试结果文件。

时间: 2024-10-05 23:44:13

BenchmarkDotNet(性能测试)的相关文章

BenchmarkDotNet

.NET Core性能测试组件BenchmarkDotNet 支持.NET Framework Mono .NET Core 超强性能测试组件BenchmarkDotNet 支持Full .NET Framework, .NET Core (RTM), Mono. BenchmarkDotNet支持 C#, F#, 和Visual Basic,可以跨平台运行. 而且支持各种报表导出,相当的方便. GitHub: https://github.com/PerfDotNet/BenchmarkDot

本文告诉大家如何使用 benchmarkdotnet 做测试

经常我写一个类,作为一个工具类,小伙伴会问我这个类的性能,这时我就需要一个标准的工具进行测试. 现在在 github 提交代码,如果有小伙伴想要知道某个函数的性能,就会用 BenchmarkDotNet 进行测试. 例如我有一个函数 StooTer ,我定义这个函数的性能是非常高,我需要告诉大家在什么的设备运行,但是因为每个人的写法不一样,所以就比较难看.而且谁也不知道你是如何测试,也许使用 StopWatch 或 DateTime 来测试. 但是在 github 经常可以看到下面的测试 Ben

利用BenchmarkDotNet 测试 .Net Core API 同步和异步方法性能

事由: 这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别. 过程: 首先 我们需要在Nuget上安装BenchMarkDotNet (安装当前最新版本,当前我已经安装好了) 但是却安装失败出现两个error. 其中一个是 第二个 ok,第二个错误非常显眼,那我先尝试着按照它的说法解决  我边在Nuget上找到 Microsoft.CodeAnalysis.CSharp 2.8.2 ,Microsoft.CodeA

NPOI 导出 excel 性能测试

NPOI 导出 excel 性能测试 Intro 网上看到很多人说 NPOI 的性能不行,自己写了一个 NPOI 的扩展库,于是想尝试看看 NPOI 的性能究竟怎么样,道听途说始终不如自己动手一试. 测试环境 测试工具: BenchmarkDotNet v0.11.5 EPPlus.Core.Extensions v2.3.2 EPPlus v4.5.3.1 测试代码:(Github 源码) [SimpleJob(launchCount: 1, warmupCount: 1, targetCou

app性能测试【通过loadrunner录制】

随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,对于大型的手机APP测试不仅要关注它的功能性.易用性还要关注它的性能,最近发现LoadRunner12可以对手机APP做性能测试,但由于LoadRunner12还没有破解版最多只有50个并发用户,所以我用LoadRunner12录制手机APP的脚本后放到LoadRunner8.0里进行压测,LoadRunner8.0可并发10000个用户. 1.下载CCProxy代理服务器,安装运行该软件用来检测本机

RC ORC Parquet 格式比较和性能测试

RC ORC Parquet 格式比较和性能测试 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 为什么要比较这三者 为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式 对于ORC性能的评测,Hortonworks发过一

Android性能测试

测试应用的启动时间 adb shell am start -W packagename/activity,eg:adb shell am start -W com.tencent.mm/.ui.LauncherUI,显示的结果中,thisTime和totalTime的含义分别为: thisTime: just current activity launched time totalTime:the activity you started may be on the bottom of acti

性能测试指标

性能测试指标 通用指标(指Web应用服务器.数据库服务器必需测试项) Web服务器指标 数据库服务器性能指标 系统的瓶颈定义 稳定系统的资源状态 通俗理解: ·日访问量 ·常用页面最大并发数 ·同时在线人数 ·访问相应时间 案例:最近公司一个项目,是个门户网站,需要做性能测试,根据项目特点定出了主要测试项和测试方案: 一种是测试几个常用页面能接受的最大并发数(用户名参数化,设置集合点策略) 一种是测试服务器长时间压力下,用户能否正常操作(用户名参数化,迭代运行脚本) 一种则需要测试服务器能否接受

Android内存和Cpu性能测试

Android内存限制java虚拟机有内存使用上限的限制 adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop 单个应用程序最大内存限制,超过这个值会产生OOMdalvik.vm.heapgrowthlimit 应用启动后分配的初始内存dalvik.vm.heapstartsize 单个java虚拟机最大的内存限制,超过这个值会产生OOMdalvik.vm.heapsize 小米2S的一些内存限制 #查看单个