Closed
Description
Lari Hotari opened SPR-11867 and commented
I'm doing performance tuning with Grails 2.4.1.BUILD-SNAPSHOT which uses Spring 4.0.5 .
The main principle for performance tuning in Grails is to minimize all blocking. I rely on the profiler information about what's causing the most blocking.
After eliminating the blocking problem in AbstractApplicationContext.assert (reported as #16482 , comments in SPR-10307) by simply overriding assertBeanFactoryActive with a no-op method in a subclass of GenericApplicationContext, the top-most blocker is now org.springframework.beans.CachedIntrospectionResults.forClass(Class) method.
Affects: 3.2.9, 4.0.5
Issue Links:
- Simplify CachedIntrospectionResults caching arrangements [SPR-10028] #14662 Simplify CachedIntrospectionResults caching arrangements
- Improve the performance of BeanInfo lookups in CachedIntrospectionResults [SPR-9014] #13653 Improve the performance of BeanInfo lookups in CachedIntrospectionResults
- Provide lock free access to BeanFactory methods by calling BF methods on the AbstractApplicationContext instance directly [SPR-11863] #16482 Provide lock free access to BeanFactory methods by calling BF methods on the AbstractApplicationContext instance directly
- Use putIfAbsent in CachedIntrospectionResults.addTypeDescriptor [SPR-12102] #16718 Use putIfAbsent in CachedIntrospectionResults.addTypeDescriptor
Referenced from: commits f27b949, 8307447, fab67b0
Backported to: 3.2.10