avoid synchronization when AspectJExpressionPointcut.getShadowMatch hits cache [SPR-5668] #10339
Labels
in: core
Issues in core modules (aop, beans, core, context, expression)
type: enhancement
A general enhancement
Milestone
Nikita Tovstoles opened SPR-5668 and commented
After we've added app-level cache to our app AspectJExpressionPointcut.getShadowMatch became a bottleneck on concurrent reads. In certain load tests, our system spends 6x more time blocked in getShadowMatch than in overall Runnable time. Happy to provide a JProfiler snapshot illustrating the problem (if needed).
Given that once an entry some targetMethod key is added to shadowMapCache it is never updated or evicted, there should be a way to avoid synchronization either altogether or when shadowMapCache returns a value on get. Please see the forum post for further details.
Affects: 2.5.6
Reference URL: http://forum.springsource.org/showthread.php?p=235994
Attachments:
Issue Links:
Referenced from: commits 56a4827
The text was updated successfully, but these errors were encountered: