为什么反射缓慢?

是因为我们应该加载类(string例如),创建实例,然后搜索适当的方法,打包参数,然后仅调用方法?因此,大多数时间都花在了这些操作上,而不是花在对象上的显式方法调用上,对吧?

回答:

使用反射时,每次执行时都需要验证您执行的每个步骤。例如,当您调用一个方法时,它需要检查目标是否实际上是该方法的声明者的实例,是否具有正确数量的参数,每个参数是否具有正确的类型,等等。

绝对没有内联或其他性能技巧的可能性。

如果要按名称查找类型或方法,那么最好只涉及一个简单的映射查找-每次执行时都会执行一次,而不是在JIT时执行一次。

基本上,还有很多事情要做。但是,反射的速度比以前快了很多。如果发现反射太慢,则可能会过度使用它。

以上是 为什么反射缓慢? 的全部内容, 来源链接: utcz.com/qa/410920.html

回到顶部