据我了解,使用 Java 反射 API 会减慢订单的代码执行速度。但是后来我看到它在 Java 世界的很多地方都被使用了。仅举几例:
- 注释
- 弹簧框架(AOP)
- 休眠
- MyBatis
这意味着我错过了一些关于 java 反射(又名优化技术)的事实。任何指针?
据我了解,使用 Java 反射 API 会减慢订单的代码执行速度。但是后来我看到它在 Java 世界的很多地方都被使用了。仅举几例:
这意味着我错过了一些关于 java 反射(又名优化技术)的事实。任何指针?
要点:因为他们别无选择。
Java 不是动态语言,因此这些框架提供服务的唯一方法是反射。
其次,请注意,这些框架所做的大部分反射工作只在初始化期间发生一次,因此运行时性能不会受到影响。
我注意到一个区别一直被混淆:
1号很慢(这是你提到的“订单”);2 号是速度显着提高的版本,现在只比本地访问慢几倍。
作为一般规则,性能问题应该通过分析来解决。撇开反射性能的重大改进不谈,所有这些框架都强调在启动时(或稍后,在延迟初始化的情况下)进行一次性查找。在使用它们的那种企业应用程序中,这并不重要。只要invoke
进行了优化,大部分的惩罚就会消失。