我经常听说使用反射是多么糟糕。虽然我通常避免反思,也很少发现不反思就无法解决问题的情况,但我在想……
对于那些在应用程序中使用反射的人,您测量过性能影响吗?它真的那么糟糕吗?
我经常听说使用反射是多么糟糕。虽然我通常避免反思,也很少发现不反思就无法解决问题的情况,但我在想……
对于那些在应用程序中使用反射的人,您测量过性能影响吗?它真的那么糟糕吗?
当前回答
如果将反射用于频繁创建对象,则它会对性能产生显著影响。我开发了一个基于复合UI应用程序块的应用程序,它严重依赖反射。通过反射创建对象时,有明显的性能下降。
但是在大多数情况下,使用反射是没有问题的。如果你只需要检查一些组装,我会推荐Mono。塞西尔,非常轻,速度很快
其他回答
如果你不是在循环中,也不用担心。
如果将反射用于频繁创建对象,则它会对性能产生显著影响。我开发了一个基于复合UI应用程序块的应用程序,它严重依赖反射。通过反射创建对象时,有明显的性能下降。
但是在大多数情况下,使用反射是没有问题的。如果你只需要检查一些组装,我会推荐Mono。塞西尔,非常轻,速度很快
我想你会发现答案是,这要看情况。如果您想把它放在任务列表应用程序中,这不是什么大问题。如果你想把它放在Facebook的持久性库中,这是一件大事。
反射不会大幅降低应用程序的性能。不使用反射可能会更快地完成某些事情,但如果反射是实现某些功能的最简单方法,那么就使用它。如果反射成为一个性能问题,你总是可以重构你的代码。
不严重。我从来没有在桌面开发中遇到过问题,除非,正如Martin所说,你在一个愚蠢的位置使用它。我听说很多人对它在桌面开发中的表现有完全不合理的担忧。
然而,在紧凑框架(我经常参与)中,它几乎是一种诅咒,在大多数情况下应该像瘟疫一样避免。我仍然可以不经常使用它,但我必须非常小心地使用它,这就不那么有趣了。:(