在我先前的文章中,不断的推广.NET4.0新特性。特别是.NET4.0 Dynamic 这个新特性。随之而来的问题也出现了—Dynamic 执行效率如何?

  我们做开发的不光需要代码简洁,能够希望自己能够写出好的架构。还有一点非常重要的就是,我们的写出来的代码效率。撇开Dynamic在.net4.0中的实现原理。本篇只考虑dynamic 的效率比起使用反射到底是快还是慢?难道.NET为引入了dynamic这个新鲜事物降低了我们的程序效率?有网友指出评论一个特性或者方法的效率如何,唯一的判定标准就是实测。

切入主题,按照以下代码,来结束你对dynamic的效率怀疑吧!!!

  1、新建测试类:

public class TestClass
{
public string TestProperty { get; set; }
}

  2、控制台程序进行效率测试代码:

static void Main(string[] args)
{
int times = 1000000;

string value = "Dynamic VS Reflection上海企业网站制作="color: #800000;">";

//reflection 测试开始
TestClass testTypeByReflection = new TestClass();
Stopwatch watch1 = Stopwatch.StartNew();
var prop上海网站建设erty = typeof(TestClass).GetProperty("TestProperty");
for (var i = 0; i < times; i++)
{
property.SetValue(testTypeByReflection, value, null上海徐汇企业网站制作 style="color: #000000;">);
}
Console.WriteLine(string.Format("Reflection耗时:{0} 毫秒", watch1.ElapsedMilliseconds));

//dynamic 测试开始
Stopwatch watch2 = Stopwatch.StartNew();
dynamic testTypeByDynamic = new TestClass();
for (int i = 0; i < times; i++)
{
testTypeByDynamic.TestProperty = value;
}
Console.WriteLine(string.Format("Dynamic耗时:{0} 毫秒", watch2.ElapsedMilliseconds));

Console.ReadLine();
}

  3、测试TestClass类,开始 dynamic VS reflection 测试结果如下

  怎样,dynamic 比起reflection 够快吧?!

  最后希望本篇文章可以给您带来帮助,如有不足之处欢迎指出,谢谢!

.NET4.0 之 Dynamic VS Refle“.NET研究”ction 效率相关推荐

  1. 一起谈.NET技术,.NET4.0 之 Dynamic VS Reflection 效率

    在我先前的文章中,不断的推广.NET4.0新特性.特别是.NET4.0 Dynamic 这个新特性.随之而来的问题也出现了-Dynamic 执行效率如何? 我们做开发的不光需要代码简洁,能够希望自己能 ...

  2. 利用.net4.0的dynamic特性制造的超级简单的微信SDK

    1.基础支持API /*-------------------------------------------------------------------------- * BasicAPI.cs ...

  3. .Net 4.0 之 Dynamic 动态类型

    本文主要旨在与网友分享.Net4.0的Dynamic 对Duck Type 的支持.     一..net4.0主要新特性 .Net4.0在.Net3.5基础上新增的主要特性有:可选参数.命名参数和D ...

  4. .NET4.0并行计算技术基础(8)

    说明: 要想看懂本系列文章,需要您对.NET多线程开发有基本的了解.我在新书<面向对象的艺术 --.NET Framework 4.0技术剖析与应用>(暂名)中花了近200页的篇幅来介绍. ...

  5. IIRF重写在asp.net4.0+IIS6中部分失败的解决方案

    最近公司里一个项目,使用的是 asp.net4.0.iis6 .iirf重写 以前iis7 和本地搭建都没有问题 ,到服务器上就一直404 看了日志发现后缀总会跟着"/eurl.axd/GU ...

  6. 《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...

    本节书摘来自异步社区<圣殿祭司的ASP.NET4.0专家技术手册>一书中的第1章,第13节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区"异步社区" ...

  7. Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法

    Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法 参考文章: (1)Win2008上.NET4.0部署出错HTTP 错误 5 ...

  8. ASP.NET4.0中客户端ID的生成

    从去年某个时候,我开始探索ASP.NET4.0 Web窗体的改进.我发现ASP.NET4.0中一些令人兴奋地改进,我确认这一切都会使WEB开发更简单并为我们提供更多灵活性.因此我逐个摘选了这些 很令人 ...

  9. NET4.0.X中的状态机工作流

    NET4.0.X中的状态机工作流 今天整理文档时发现了这篇忘记发布的文章,是关于NET 4.0.1的, NET 4.0.2都已发布一段时间了 以下NET版本提供WF4.0的状态机工作流在VS2010中 ...

最新文章

  1. FFmpeg 中AVPacket的使用
  2. 常见加密工具类Base64、DES、AES、RSA、MD5汇总
  3. python处理报错_python3报错及解决方案/须注意的细节(持续更新)
  4. 【提醒】刷脸取件被小学生“破解”!丰巢紧急下线
  5. iOS vuforia 学习钻研(一)
  6. cesium获取点击内容信息_Cesium获取鼠标点击位置(PickPosition)
  7. MybatisPlus报错: org.apache.velocity.context.Context(已解决)
  8. Linux网卡名改eth0方法
  9. vmware 无法安装 (出现原因及解决办法)
  10. 赫兹的单位换算_赫兹的换算(赫兹单位的换算怎么换)
  11. C# Prase转换 Convert 转换
  12. 25岁,一个北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰!
  13. tv端h5_最新版H5双端影视APP源码
  14. [Tool] 仿博客园插入代码的 WLW 插件
  15. 修改未能正确启动的docker容器的配置文件
  16. 如何对自己的Unity项目代码进行加密混淆?
  17. 微软的Edge浏览器越来越有趣
  18. 显卡超频稳定测试软件,显卡超频稳定性测试终极手段
  19. Google浏览器翻译不能使用的解决办法
  20. Excel导入sql

热门文章

  1. 461. 汉明距离 golang
  2. 牛客网选择题之linux
  3. C++ 拷贝构造函数的使用场景
  4. [STL]List的实现
  5. Linux多线程——使用信号量同步线程
  6. MySQL+Tomcat+JVM,看完还怕面试官
  7. Redis面试复习大纲在手面试不慌,讲的明明白白!
  8. CSS清除默认样式,聪明人已经收藏了!
  9. 温故而知新!微信小程序的事件处理,吊打面试官系列!
  10. 程序员深度学习!我想谈谈关于Android面试那些事,附赠课程+题库