加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用反射创建高性能.NET类?

发布时间:2020-12-15 06:31:32 所属栏目:百科 来源:网络整理
导读:好的,所以我们都知道,反射比“新建”一个类实例的时间要少很多,在许多情况下,这根据应用程序的要求是很好的. 问题:如何使用后期绑定(反射)策略创建高性能.NET类. 我有一个现有的要求,要求使用反射(CreateInstance)创建类实例,但性能至关重要.在我的情况下,
好的,所以我们都知道,反射比“新建”一个类实例的时间要少很多,在许多情况下,这根据应用程序的要求是很好的.

问题:如何使用后期绑定(反射)策略创建高性能.NET类.

我有一个现有的要求,要求使用反射(CreateInstance)创建类实例,但性能至关重要.在我的情况下,我在我们的应用程序中为每个传入的SMS消息创建实例.在生产过程中,每天可能容易超过一百万.

我想听听并分享一些关于如何创建.NET类的想法,而不直接引用代码中的类,例如使用Reflection.我也在想,如果有办法缓存一个可以提高“创作”时间的班级工厂

解决方法

每天100万不是很多;我只是使用Activator.CreateInstance(使用Activator.CreatInstance(类型)的快速测试显示在我的低廉的笔记本电脑上,它可以在?2s中从aType创建1M对象).

对快速创建对象的想法:

>使用泛型和:new()约束(零努力)
>使用DynamicMethod并写入IL(不硬)

新方法的实现(不需要外部的new()约束)如下所示:ObjectFactory.cs.

有关IL的例子,请参见dapper-dot-net和il.Emit(OpCodes.Newobj,…)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读