Windows Store应用程序中的GetTypeInfo性能

时间:2015-06-09 19:38:05

标签: c# .net reflection windows-store-apps portable-class-library

从.Net Framework 4.5移植到可移植类库配置文件或Windows应用商店应用时,反射重型库和应用程序的重大变化正在转换到Evolved Type System,即从{{1}移动} Type

以简单的方式进行操作并从中转换大量代码可能很诱人:

TypeInfo

......这样的事情:

someType.AccessReflectionAPI();

这会导致很多someType.GetTypeInfo().AccessReflectionAPI(); 次来电,让我感到担忧。由于.Net Framework 4.5 GetTypeInfo派生自TypeInfoType实现是微不足道的(甚至可能是JIT内联的?),但是Windows Store应用程序的实现和.Net核心?

在这些平台上调用GetTypeInfo 有多大影响?每次调用都会创建一个新对象吗?每次调用都意味着字典查找吗?这里的开销是多少?

1 个答案:

答案 0 :(得分:0)

作为静态反射方法的GetTypeInfo不会创建新对象,因此唯一的开销是速度。你是正确的,因为大多数反射内容是JIT内联的,而基于C ++ / CLI的代码 - 性能确实不是我的经验中的问题。

如果你感兴趣的话,如果你在反射器或另一个装配检查员中查看mscorlib,那么反射api的内部结构很容易理解。