Details
Description
AnnotationUtils has had an internal annotated interface cache (SPR-7630) as well as a general lookup cache (SPR-11882) for a while. However, recent performance benchmarks showed that further significant gain can be achieved by turning the interface cache into an annotated base type cache, caching metadata about superclasses as well... in particular about non-annotated base classes that are never worth searching. We're also narrowing potential base type lookups to a set of candidate methods that carry any annotations to begin with, avoiding an often NoSuchMethodException-triggering Class.getMethod lookup for a base method in favor of matching against the candidate Method set from our cache.
Attachments
Issue Links
- is related to
-
SPR-16723 AspectJ execution pointcut does not detect methods in superinterface anymore
-
- Closed
-
-
SPR-16757 AopUtils.getMostSpecificMethod should expose dynamic proxy class methods
-
- Closed
-
-
SPR-16677 Mixed use BeanNameAutoProxyCreator and AnnotationAwareAspectJAutoProxyCreator to proxy same bean
-
- Closed
-
-
SPR-16730 Avoid repeated superclass introspection in AnnotationUtils.findAnnotation
-
- Closed
-
-
SPR-16933 Avoid unnecessary synthesizable annotation processing
-
- Closed
-
- relates to
-
SPR-7630 Major performance slowdown in AnnotationUtils.findAnnotation
-
- Closed
-
-
SPR-7448 Transactional attribute is not resolved on CgLib proxies created by FactoryBeans
-
- Closed
-
-
SPR-11882 ReflectionUtils slow down application startup on WebSphere
-
- Closed
-
-
SPR-16667 Reduce ClassUtils.forName overhead (in particular for annotation introspection purposes)
-
- Closed
-