• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 浅谈.NET反射机制的性能优化 附实例下载

浅谈.NET反射机制的性能优化 附实例下载

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了浅谈容错纠错机制,浅谈激励机制,浅谈对三项机制的认识,浅谈企业激励机制,浅谈三项机制等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
可能大家谈到反射面部肌肉都开始抽搐了吧!因为在托管语言里面,最臭名昭著的就是反射!它的性能实在是太低了,甚至在很多时候让我们无法忍受。不过不用那么纠结了,老陈今天就来分享一下如何来优化反射!

概述
本文涉及到的反射优化的途径有如下两种:

通过Delegate.CreateDelegate()创建委托进行优化
通过.NET4的动态运行时进行优化
如果您还知道其他更加有效的优化途径,请不吝赐教!

准备工作
今天我们总计要对比五种不同的调用对象成员的方式,也算是一种性能测评。

在开始之前,我们首先定义一个简单的对象和一个方法,以供测试之用:

Debug模式:

调用方式 第一次 第二次 第三次 第四次 第五次
Generic Call 1.022425 1.012885 0.990775 1.020950 1.046880
Reflection 147.489220 146.012010 142.690080 139.189335 141.663475
dynamic 9.645850 9.979965 9.307235 9.532665 9.730030
Func 1.201860 1.214800 1.170215 1.189280 1.239485
Delegate 1.062215 1.061635 1.067510 1.047180 1.075190

Release模式:

调用方式 第一次 第二次 第三次 第四次 第五次
Generic Call 0.745600 0.741365 0.722145 0.732630 0.725645
Reflection 141.778260 142.855410 142.346095 139.649990 138.541285
dynamic 9.631460 10.341850 9.284230 9.457580 9.060470
Func 0.882100 0.852680 0.875695 0.854655 0.831670
Delegate 0.710280 0.722465 0.723355 0.727175 0.693320

点评&结论:

  • 使用委托优化反射之后,其性能与直接调用相差无几,保持在同一个数量级之内,对性能要求极度苛刻时推荐此方案;
  • 显式委托(Delegate)和匿名委托(Func)性能差异非常不明显,但显式委托的性能还是好一点; 
  • 原生委托比直接调用慢出了两个数量级,性能差异达到了200倍之多!
  • .NET 4的动态编程语法相当简洁,其性能只比直接调用高出一个数量级,由于其语法相当简洁,我们推荐这种做法!
  • 原生反射技术在Debug模式和Release模式下没有太大差异,但其他方式有较为明显的优化效果(请思考为什么);
  • 虽然我们今天的测试不能完全意味着反射优化之后可以和直接调用相媲美,但至少可以从某种程度上击败那些个谣言——谁说反射就一定会慢(嘻嘻)!

代码下载:浅谈反射优化 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅谈.NET反射机制的性能优化 附实例下载

相关文章

  • 2017-05-11c# static的全部用法收集整理
  • 2017-05-11asp.net 在客户端显示服务器端任务处理进度条的探讨
  • 2018-08-20基于Entity Framework自定义分页效果
  • 2017-05-11Visual Studio 2017中找回消失的“在浏览器中查看”命令
  • 2017-05-11ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享
  • 2017-05-11asp.net中IDataParameter调用存储过程的实现方法
  • 2017-05-11C# 添加图片水印类实现代码
  • 2017-05-11C# CUR类实现代码
  • 2017-05-11排除JQuery通过HttpGet调用WebService返回Json时“parserror”错误
  • 2017-05-11ASP.NET Cache的一些总结分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net core中灵活的配置方式详解
    • java 单例模式(饿汉模式与懒汉模式)
    • System.Web中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)
    • 在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider
    • 在ASP.NET 2.0中操作数据之三十三:基于DataList和Repeater使用DropDownList过滤的主/从报表
    • ABP框架的体系结构及模块系统讲解
    • gridview行索引获取方法及实现代码(非js版)
    • IIS应用池回收造成Application_Start中定时执行程序停止的问题的解决方法
    • 基于.NET BitmapImage 内存释放问题的解决方法详解
    • C# OWC生成图表

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有