用BenchmarkDotNet看Method

在前面的文章中看了Property的几种不同访问方式《用BenchmarkDotNet看Property》,性能调用上的差别明显,那同样作为class里重要成员,Method性能如何呢?

下面是被测试方法

public class MyClass{public string MyMethod(){return DateTime.Now.ToString();}}

具体调用方式:实例化调用,反射调用,委托调用

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;namespace Demo01
{[MemoryDiagnoser]class MethodDemo : IDemo{public void Run(){BenchmarkRunner.Run<TestMethod>();}}public class TestMethod{private readonly MyClass _myClass;private readonly Func<MyClass, string> _delegate;private readonly MethodInfo _methodinfo;public TestMethod(){_myClass = new MyClass();_methodinfo = _myClass.GetType().GetMethod("MyMethod");_delegate = (Func<MyClass, string>)Delegate.CreateDelegate(typeof(Func<MyClass, string>), _methodinfo);}[Benchmark]public string MethodA(){return _myClass.MyMethod();}[Benchmark]public string MethodAExt(){var myClass = new MyClass();return myClass.MyMethod();}[Benchmark]public string MethodB(){return _methodinfo.Invoke(_myClass, new object[0]).ToString();}[Benchmark]public string MethodBExt(){var myClass = new MyClass();var methodinfo = _myClass.GetType().GetMethod("MyMethod");return methodinfo.Invoke(myClass, new object[0]).ToString();}[Benchmark]public string MethodC(){return _delegate(_myClass);}[Benchmark]public string MethodCExt(){var myClass = new MyClass();var methodinfo = myClass.GetType().GetMethod("MyMethod");var dele = (Func<MyClass, string>)Delegate.CreateDelegate(typeof(Func<MyClass, string>), methodinfo);return dele(myClass);}}

可以看到反射的性能还是相对低的,同样委托实例化的性能也比较低。

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

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

相关文章

美国老师用的思维导图书,真正培养孩子的思维能力!

▲数据汪特别推荐点击上图进入玩酷屋小木读大学的时候&#xff0c;无意间在图书馆接触到了东尼博赞的《思维导图》。当时有好几个朋友和我推荐过这本书&#xff0c;我就借来看了。阅读之后&#xff0c;我发现对我来说&#xff0c;这真是不可多得一本好书——它改变了我20多年的…

filesystemwatch java_C#方法的委托和java中的回调

先看个效果20130415.C#监视文件夹,显示文件夹操作到listView上代码实现,以前在学校生活写的,就几句代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;us…

每日一笑 | 为什么男生追到一半就不追了?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

转:超越设计模

转&#xff1a;http://www.ibm.com/developerworks/cn/java/j-lo-beyondpattern/刘 旭进, 软件开发工程师, IBM 中国软件开发中心简介&#xff1a; 可复用面向对象软件的基础 -- 设计模式&#xff0c;以其可复用的设计初衷、精巧的逻辑思维被广大面向对象程序设计所追捧。但不少…

为什么中国天才都往美国跑,可美国人的数学那么槽糕

中国天才少年尹希&#xff0c;17岁时收到哈佛大学博士offer&#xff0c;31岁成为哈佛最年轻华人正教授。中国年轻科学家、未来科学大奖数学与计算机奖获得者许晨阳&#xff0c;于2018年加入美国麻省理工&#xff0c;选择去世界顶尖的地方看看。22岁中国“神童”曹原&#xff0c…

如何使用VIM的Help

很多时候在用到vim的命令的时候&#xff0c;都会去网上搜索&#xff0c;殊不知&#xff0c;如果熟练使用VIM的help&#xff0c;可以达到事半功倍的效果。 下面介绍如何使用VIM的help&#xff1a; 1. 在vim的一般模式中输入&#xff1a;help可以进入vim的help界面 这里面注…

可编程智能小车,100种玩法,从3岁玩到15岁,培养孩子“最强大脑”

▲数据汪特别推荐点击上图进入玩酷屋毫无疑问&#xff0c;数学、科学和计算机科学是解决21世纪现代问题的三大支柱。当现在各式各样的兴趣班和教育辅导班快要呈现饱和状态时&#xff0c;一种新兴的教育活动正如火如荼地进行着那就是少儿编程。少儿编程奇迹般的红火&#xff0c;…

php 数组什么情况下是空的?

转载于:https://www.cnblogs.com/persist/p/3183819.html

WPF实现时间轴(仿Gitee)

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织“ 前言&#xff0c;接着上一篇圆形菜单。”欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;02—代码如下一、…

java如何用键盘输入_java中如何从键盘输入(附代码)

一、java不像C中拥有scanf这样功能强大的函数&#xff0c;大多是通过定义输入输出流对象。常用的类有BufferedReader&#xff0c;Scanner。相关java视频教程推荐&#xff1a;java实例程序&#xff1a;视频教程1、利用 Scanner 实现从键盘读入integer或float 型数据//import jav…

JS partial-application

为什么80%的码农都做不了架构师&#xff1f;>>> /* Title: Partial applicationDescription: the process of fixing a number of arguments to a function, producing another function of smaller arity */var partialAny (function(aps) {// This function wil…

每日一笑 | 我写了一段代码,为什么不能运行呢?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

使用IQueryable扩展方法实现复杂查询条件

问题在业务开发中&#xff0c;经常要处理比较复杂的查询条件&#xff0c;如下图&#xff1a;如果任一输入有值&#xff0c;则必须作为查询条件之一。示例代码如下&#xff1a;IQueryable<User> query repository.GetAll();if(name!null) {query query.Where(p>p.Name…

阿里日均纳税超1.4亿;AI换脸骗过美侦查;日本民众哄抢令和报纸;辟谣教学楼发现大量金矿;上海拨通首个5G通话;这就是今日大新闻...

今天是4月2日农历二月廿七今天星期二下面是今天的大新闻阿里巴巴日均纳税超1.4亿&#xff08;IT168&#xff09;4月1日&#xff0c;阿里巴巴在“2020财年首日”发布消息称&#xff1a;2018全年&#xff0c;阿里巴巴集团和蚂蚁金服集团总计向国家纳税516亿元&#xff0c;同比增长…

大家好!

在博客园申请帐号已经有好长时间了&#xff0c;可是一直也没有写点什么&#xff0c;可能是太忙了吧&#xff08;其实是懒&#xff09;&#xff01;以后我会多写些文字&#xff0c;毕竟这是一件好事。转载于:https://www.cnblogs.com/hubin/archive/2004/08/16/33928.html

腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言

触发点&#xff1a; http://city.hn.qq.com http://city.hn.qq.com/auto/cshop&mbbs&id668 POST /msgboard/message.php HTTP/1.1 Host: c1.city.qq.com Connection: keep-alive Content-Length: 201 Cache-Control: max-age0 Accept: text/html,application/xhtmlxml,…

c#:细说时区、DateTime和DateTimeOffset在国际化中的应用

先说下结论&#xff1a;如果系统不考虑全球化的话&#xff0c;那么我们不用考虑时区的问题&#xff0c;因为我们可以认为中国境内的计算机全部用的是北京时间。1. 时区的来源和划分地球自转一圈是360度&#xff0c;共24小时&#xff0c;所以1小时15度&#xff0c;即&#xff1a…

超赞的“数据与算法之美”资料分享!

相信&#xff0c;一直关注着我们的同学们都知道&#xff0c;小思妹分享了好多好多的资料给大家。为了方便新来的同学自取&#xff0c;小思妹又重新整理了一遍&#xff0c;直接点以下标题即可跳转&#xff01;这是我见过的最全的训练数据集&#xff0c;没有之一&#xff01;送你…

在ASP.NET Core微服务架构下使用数据库切分和扩展, 并用JMeter进行负载测试

原文链接&#xff1a;https://itnext.io/how-to-scale-an-asp-net-core-microservice-and-sharded-database-load-test-with-jmeter-1a8c7292e7e3现在&#xff0c;您将扩展应用程序并运行多个微服务和数据库的容器实例。您将使用Docker Compose和HAProxy负载均衡器&#xff1a;…

每日一笑 | 周杰伦到底什么时候才发新专辑?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;