.NET4.0 之 Dynamic VS Refle“.NET研究”ction 效率
在我先前的文章中,不断的推广.NET4.0新特性。特别是.NET4.0 Dynamic 这个新特性。随之而来的问题也出现了—Dynamic 执行效率如何?
我们做开发的不光需要代码简洁,能够希望自己能够写出好的架构。还有一点非常重要的就是,我们的写出来的代码效率。撇开Dynamic在.net4.0中的实现原理。本篇只考虑dynamic 的效率比起使用反射到底是快还是慢?难道.NET为引入了dynamic这个新鲜事物降低了我们的程序效率?有网友指出评论一个特性或者方法的效率如何,唯一的判定标准就是实测。
切入主题,按照以下代码,来结束你对dynamic的效率怀疑吧!!!
1、新建测试类:
{
public string TestProperty { get; set; }
}
2、控制台程序进行效率测试代码:
{
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 效率相关推荐
- 一起谈.NET技术,.NET4.0 之 Dynamic VS Reflection 效率
在我先前的文章中,不断的推广.NET4.0新特性.特别是.NET4.0 Dynamic 这个新特性.随之而来的问题也出现了-Dynamic 执行效率如何? 我们做开发的不光需要代码简洁,能够希望自己能 ...
- 利用.net4.0的dynamic特性制造的超级简单的微信SDK
1.基础支持API /*-------------------------------------------------------------------------- * BasicAPI.cs ...
- .Net 4.0 之 Dynamic 动态类型
本文主要旨在与网友分享.Net4.0的Dynamic 对Duck Type 的支持. 一..net4.0主要新特性 .Net4.0在.Net3.5基础上新增的主要特性有:可选参数.命名参数和D ...
- .NET4.0并行计算技术基础(8)
说明: 要想看懂本系列文章,需要您对.NET多线程开发有基本的了解.我在新书<面向对象的艺术 --.NET Framework 4.0技术剖析与应用>(暂名)中花了近200页的篇幅来介绍. ...
- IIRF重写在asp.net4.0+IIS6中部分失败的解决方案
最近公司里一个项目,使用的是 asp.net4.0.iis6 .iirf重写 以前iis7 和本地搭建都没有问题 ,到服务器上就一直404 看了日志发现后缀总会跟着"/eurl.axd/GU ...
- 《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...
本节书摘来自异步社区<圣殿祭司的ASP.NET4.0专家技术手册>一书中的第1章,第13节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区"异步社区" ...
- Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法
Win2008上.NET4.0部署出错HTTP 错误 500.21 - Internal Server Error的解决方法 参考文章: (1)Win2008上.NET4.0部署出错HTTP 错误 5 ...
- ASP.NET4.0中客户端ID的生成
从去年某个时候,我开始探索ASP.NET4.0 Web窗体的改进.我发现ASP.NET4.0中一些令人兴奋地改进,我确认这一切都会使WEB开发更简单并为我们提供更多灵活性.因此我逐个摘选了这些 很令人 ...
- NET4.0.X中的状态机工作流
NET4.0.X中的状态机工作流 今天整理文档时发现了这篇忘记发布的文章,是关于NET 4.0.1的, NET 4.0.2都已发布一段时间了 以下NET版本提供WF4.0的状态机工作流在VS2010中 ...
最新文章
- FFmpeg 中AVPacket的使用
- 常见加密工具类Base64、DES、AES、RSA、MD5汇总
- python处理报错_python3报错及解决方案/须注意的细节(持续更新)
- 【提醒】刷脸取件被小学生“破解”!丰巢紧急下线
- iOS vuforia 学习钻研(一)
- cesium获取点击内容信息_Cesium获取鼠标点击位置(PickPosition)
- MybatisPlus报错: org.apache.velocity.context.Context(已解决)
- Linux网卡名改eth0方法
- vmware 无法安装 (出现原因及解决办法)
- 赫兹的单位换算_赫兹的换算(赫兹单位的换算怎么换)
- C# Prase转换 Convert 转换
- 25岁,一个北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰!
- tv端h5_最新版H5双端影视APP源码
- [Tool] 仿博客园插入代码的 WLW 插件
- 修改未能正确启动的docker容器的配置文件
- 如何对自己的Unity项目代码进行加密混淆?
- 微软的Edge浏览器越来越有趣
- 显卡超频稳定测试软件,显卡超频稳定性测试终极手段
- Google浏览器翻译不能使用的解决办法
- Excel导入sql