Unnecessary sort in AbstractApplicationEventMulticaster [SPR-17307] #21840
Labels
in: core
Issues in core modules (aop, beans, core, context, expression)
status: backported
An issue that has been backported to maintenance branches
type: enhancement
A general enhancement
Milestone
Nick Hristov opened SPR-17307 and commented
org.springframework.context.event.AbstractApplicationEventMulticaster.ListenerRetriever#getApplicationListeners
method performs an unnecessary sort:It creates a list which is a combination of
this.applicationListeners
andthis.applicationListenerBeans
and sorts that list. However, the sorting is unnecessary if either one of the two collections is empty. Furthermore, due to the fact that the sorting utilizes the reflection lookups, this sort can become an expensive unnecessary overhead in some use cases.In my case, I load large amounts of data (> 1K of objects) via Spring Data Mongo which fires off events for every object loaded in the system.
So the sort operation ends up taking about 38% of the overall cost of the processing, more than any other component in my use case.
Affects: 5.0.5
Attachments:
Issue Links:
Backported to: 5.0.10
The text was updated successfully, but these errors were encountered: