可能重复:
反射真的很慢吗?
经常有人跟我说反射的表现很差,为什么呢?我搜索了有关反射的详细信息,想知道它的机制和“性能不佳”的秘密,但没有得到任何有用的信息。有人可以告诉我钥匙或一些信息吗?越详细越好。
可能重复:
反射真的很慢吗?
经常有人跟我说反射的表现很差,为什么呢?我搜索了有关反射的详细信息,想知道它的机制和“性能不佳”的秘密,但没有得到任何有用的信息。有人可以告诉我钥匙或一些信息吗?越详细越好。
两个方面。首先是查找元数据,第二次查找时速度很快。第一次您往往不得不为少数页面错误支付费用才能将数据从程序集中获取到 RAM。之后被缓存。您倾向于第一次关心(或衡量)。
第二个是直接调用方法或访问字段或属性的速度非常快。它通常不会花费超过一两个 CPU 周期。当方法可以内联或字段访问可以与另一条指令重叠时,包括 none。反射总是与那个比较差,它需要数百条指令。
当其他代码需要大量时间时,反射是一个合适的解决方案,因此反射成本是一个小因素。其中包括任何涉及 I/O 的内容,例如文件格式和 dbase 映射。以及在人类时间运行的代码,例如设计师和编译器。