.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 文件夹。

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

 

 

 更多强大的功能可以参看官方文档:https://perfdotnet.github.io/BenchmarkDotNet/

相关文章: 

  • 用BenchmarkDotNet给C#程序做性能测试

原文地址:http://www.cnblogs.com/linezero/p/BenchmarkDotNet.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab amd补丁,Matlab升级 AMD锐龙性能恢复满血:轻松提升60%

Mathwork Matlab是一款极为流行、权威的计算软件&#xff0c;但是去年11月的时候&#xff0c;有人发现AMD锐龙处理器疑似被它“劣化”&#xff0c;无法正确调用最新指令集&#xff0c;导致性能残血。具体来说&#xff0c;Matlab会提前检测处理器身份&#xff0c;也就是CPUID字符…

JSP2.0中的表达式语言(EL表达式)

转载自 JSP2.0中的表达式语言(EL表达式) EL语法EL的语法很简单&#xff0c;他最大的特点就是使用上很方便 例&#xff1a; ${sessionScope.user.sex} 所有EL都是以${ 为起始、以} 为结尾的。 上述EL范例的意思是&#xff1a;从Session取得用户的性别。如果使用之前JSP代码的写…

免费下载百度 豆丁 丁香 等平台文档

免费下载百度 豆丁 丁香 等平台文档 2019年01月15日 17:59:04 松门一枝花 阅读数&#xff1a;347 版权声明&#xff1a;有问题咨询请发邮件zengmiaogen126.com。CSDN的留言和私信不好使。 https://blog.csdn.net/zengmingen/article/details/86496344 免费下载百度文档 免费…

java填充线缺口,在geom_freqpoly线下填充区域的最简单方法是什么?

x轴是时间间隔的时间 . 数据框中有一个间隔列&#xff0c;用于指定每行的时间 . 该列是一个因子&#xff0c;其中每个区间是不同的因子级别 .使用geom_histogram和geom_freqpoly绘制直方图或直线效果很好&#xff0c;但是我希望有一条线&#xff0c;就像geom_freqpoly提供的那样…

《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言

本文是7月受陈嘉栋的委托为他的新书《Unity 3D脚本编程:使用C#语言开发跨平台游戏》所写的序言&#xff0c;借助序言告诉大家.NET平台有着一个广阔的使用场景。 序言 Unity3D 是由两个具有巨大吸引力而极其令人愉悦的领域混合而成&#xff1a;C#语言和游戏开发。Unity团队设计U…

CDN如何实现,关键技术是什么?

转载自 CDN如何实现&#xff0c;关键技术是什么&#xff1f; CDN原理 CDN网络是在用户和服务器之间增加Cache层&#xff0c;如何将用户的请求引导到Cache上获得源服务器的数据&#xff0c;主要是通过接管DNS实现&#xff0c;这就是CDN的最基本的原理。如下图&…

35 岁程序员的独家面试经历

35 岁程序员的独家面试经历 2015年12月15日 17:34:33 松门一枝花 阅读数&#xff1a;524 创业失败后&#xff0c;在找工作。选择了三家&#xff08;两家上市公司&#xff0c;一家将上市&#xff09;&#xff0c;都走到了关键的节点。我记录了面试过程中被问到的一些问题&…

国庆假期请假公告

公众号运营从开始到今天&#xff0c;运营了接近2年时间&#xff0c;每天更新成了一个必备功课&#xff0c;有时候很辛苦&#xff0c;有时候也是很累&#xff0c;但想到公众号里有很多的朋友的期待&#xff0c;就会一次次的拿起电脑开始码字。 公众号不谈国事&#xff0c;不论风…

php中对象的遍历输出,PHP中的对象遍历技巧

PHP中的对象遍历对象的遍历,主要是指遍历对象中的&#xff0c;对外部可见属性。实际上就是用访问限制符public声明的属性&#xff0c;这点大家肯定很熟悉了。并且,在php中&#xff0c;遍历对象居然与遍历数组一样&#xff0c;都可以用使用foreach语句。好&#xff0c;下面用实例…

数据库连接池的选择及其开发配置

转载自 数据库连接池的选择及其开发配置 一、数据库连接池概述 数据库连接的建立是一种耗时、性能低、代价高的操作&#xff0c;频繁的数据库连接的建立和关闭极大的影响了系统的性能。数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中&#xff0c;当程序…

C#在Linux+Mono环境中使用微信支付证书

最近特殊的需求&#xff0c;要把微信平台一个功能页面部署到Linux&#xff08;CentOS6.5&#xff09;下&#xff0c;其中涉及到微信支付退款。 鉴于之前实践过monojexusasp.net mvc的部署&#xff0c;于是问题重点在于解决对商户证书的调用问题。 查看微信支付官方文档关于证书…

mysql切换用户sql语句,MySQL用户管理及SQL语句详解

[(none)]>select user,host frommysql.user; #查询用户和主机--------------------------| user | host |--------------------------| root | 10.0.0.% || mysql.session | localhost || mysql.sys | localhost || root | localhost |--------------------------4 rows in …

其他

关于程序员的文章 2014年05月01日 16:58:25 a8511119 阅读数&#xff1a;300 中国有很多小朋友&#xff0c;他们18,9岁或21,2岁&#xff0c;通过自学也写了不少代码&#xff0c;他们有的代码写的很漂亮&#xff0c;一些技术细节相当出众&#xff0c;也很有钻研精神&#xff0…

Java经典面试题一

转载自 Java经典面试题一 题目一 面向对象的特征有哪些方面&#xff1f; 答&#xff1a;面向对象的特征主要有以下几个方面&#xff1a; 1.抽象&#xff1a; 抽象是将一类对象的共同特征总结出来构造类的过程&#xff0c;包括数据抽象和行为抽象两方面。抽象只关注对象有哪些…

微信小程序这么火,到底会对C#开发者带来怎样的改变

在9月22日凌晨&#xff0c;微信公众平台开始陆续对外发出小程序的内测邀请&#xff0c;小程序也立即成为被外界广为关注的微信“应用号"&#xff0c;9月23日的福州 2016腾讯全球合作伙伴大会上&#xff0c;腾讯COO、游戏和无线业务的掌舵人、腾讯首席运营官任宇任宇昕提到…

php js 验证码,js实现验证码的方法

验证码的生命周期在web应用中&#xff0c;验证码常用于登录注册。验证码本质就是一张图片。我们来看一下验证码的生命周期&#xff1a;客户端请求验证码服务端渲染验证码&#xff1a;渲染一张包含随机字符串的图片随机字符串写入session读取图片并返回响应客户端提交&#xff1…

区间数多属性决策matlab,区间数多属性决策的改进理想解法

Interval Multiple Attribute Decision Making Based on the Improved Technique for Order Preference by Similarity to Ideal Solution1、School of Economics and Management, Southwest Jiaotong University2、Deaprtment of Mathematics, North Sichuan Medical CollegeA…

.NET 标准介绍

本文介绍如何使用 .NET 标准&#xff0c;更容易地实现向 .NET Core 迁移。文中会讨论计划包含的 APIs&#xff0c;跨构架兼容性如何工作以及这对 .NET Core 意味着什么。 如果你对细节感兴趣&#xff0c;这篇文章正是为你准备的&#xff1b;如果你没有那么多时间或者对细节并不…

HTTP 返回码详解

转载自 HTTP 返回码详解200 服务器成功返回网页 404 请求的网页不存在 503 服务不可用1xx&#xff08;临时响应&#xff09; 表示临时响应并需要请求者继续执行操作的状态代码。 100&#xff08;继续&#xff09;请求者应当继续提出请求。 服务器返回此代码表示已收到请求…