我多次看过反射会降低手机的性能。 这是真的吗?
例如在我的情况下,我从Web服务获取一些参数,这些参数与我在Android应用程序中的类的参数具有相同的名称。所以我只是使用java字段和反射设置这些参数的值......它似乎不会降低性能..
任何人都可以向我解释这个关于反思会降低性能的想法背后的事实吗?
答案 0 :(得分:6)
看看this question。基本上,您正在超越编译器可以执行的优化,因为反射是动态发生的。
如果您没有进行大量的反射调用(例如,在ListView的getView中进行操作会很糟糕),您可能会侥幸逃脱。它就在那里使用,只是对它有所了解。
答案 1 :(得分:4)
这是真的吗?
比不使用反射慢。它绝对是你想要在循环或快速UI处理期间避免的东西(例如,滚动ListView)。
我从Web服务获取一些参数,这些参数与我在Android应用程序中的类的参数同名。所以我只是使用java字段和反射设置这些参数的值......它似乎不会降低性能..
虽然在这种情况下用户可能不会注意到它。
任何人都可以向我解释这个关于反思会降低性能的想法背后的事实吗?
请参阅@Brian Cooley在答案中提供的link。请记住,对Dalvik(Android中的虚拟机)的反思可能比Java VM上的反射慢 - 我确实相信它不会更快,无论如何。