我读了很多次,反射会减慢手机的性能。这有多真实?
例如,在我的情况下,我从 Web 服务中获取一些参数,这些参数与我在我的 android 应用程序中的类的参数同名。所以我只是使用java字段和反射设置这些参数的值......它似乎并没有降低性能......
任何人都可以向我解释这个关于反射减慢性能的想法背后的事实吗?
我读了很多次,反射会减慢手机的性能。这有多真实?
例如,在我的情况下,我从 Web 服务中获取一些参数,这些参数与我在我的 android 应用程序中的类的参数同名。所以我只是使用java字段和反射设置这些参数的值......它似乎并没有降低性能......
任何人都可以向我解释这个关于反射减慢性能的想法背后的事实吗?
看看这个问题。基本上,您超出了编译器可以执行的优化范围,因为反射是动态发生的。
如果您没有进行大量反射调用(例如,在 ListView 的 getView 中执行此操作会很糟糕),那么您可能会侥幸成功。它是可以使用的,请谨慎使用。
这有多真实?
它比不使用反射要慢。在循环或快速 UI 处理期间(例如,滚动 ListView),这绝对是您要避免的事情。
我从 Web 服务中获取一些参数,这些参数与我在我的 android 应用程序中的类的参数同名。所以我只是使用java字段和反射设置这些参数的值......它似乎并没有降低性能..
确实如此,尽管在这种情况下用户可能不会注意到它。
任何人都可以向我解释这个关于反射减慢性能的想法背后的事实吗?
See the link provided by @Brian Cooley in his answer. Bear in mind that reflection on Dalvik (the virtual machine in Android) may be slower than reflection on the Java VM -- I am really rather certain it is not faster, at any rate.