4

我读了很多次,反射会减慢手机的性能。这有多真实?

例如,在我的情况下,我从 Web 服务中获取一些参数,这些参数与我在我的 android 应用程序中的类的参数同名。所以我只是使用java字段和反射设置这些参数的值......它似乎并没有降低性能......

任何人都可以向我解释这个关于反射减慢性能的想法背后的事实吗?

4

2 回答 2

7

看看这个问题。基本上,您超出了编译器可以执行的优化范围,因为反射是动态发生的。

如果您没有进行大量反射调用(例如,在 ListView 的 getView 中执行此操作会很糟糕),那么您可能会侥幸成功。它是可以使用的,请谨慎使用。

于 2011-03-30T20:55:37.593 回答
4

这有多真实?

它比不使用反射要慢。在循环或快速 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.

于 2011-03-30T20:57:24.093 回答