-
Notifications
You must be signed in to change notification settings - Fork 615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Longer Startup Times Post Spring-Boot 3.4.0 Upgrade #3076
Comments
…erties' Using 'ConcurrentSkipListMap' was causing significant performance issues Resolves #3076
@carolmorneau Can you please give it a shot with 4.2.1-SNAPSHOT and let me know. I expect it to actually be faster now |
@Mrc0113 ^^ |
Hi @olegz, unfortunately, I do not see improvements with From my testing, the slowdown was introduced with this commit. Can you think of any effect this could have had on Spring Cloud Stream? |
@carolmorneau email me when you are online so we can zoom and do some screen share. It is strange as I see different results and in fact see that it is now faster |
Hi @olegz , following our chat, I've retested with Spring Boot However, post upgrade, calls to bindingServiceProperties.getBinder(binding) which correspond to a producer binding do trigger the I should have likely mentioned this when I opened the issue but here's how the output bindings are defined:
|
@carolmorneau I just noticed something. What is
??? We don't have this property. It supposed to be
Basically with I observe the same behavior with previous version, as it also does not recognise Could it be something Solace related? I also see the performance improvement with boot 3.4.*. |
My apologies, that was supposed to say:
Today, we have made optimizations on our end which brings down the initialization of our undefined binder to ~230ms from ~550ms. This optimization combined with the optimization that you've done on your end help. This is slower than the ~10ms that we were seeing pre Spring-Boot upgrade but we'll need to narrow it down some more before we can make real progress. We'll open a new issue, likely against Spring-Boot, when we have it narrowed down. Thank you for looking into this issue. It can be closed. |
We noticed longer startup times after upgrading to Spring-Boot 3.4.0 and Spring Cloud Stream 4.2.0.
Spring-Boot 3.3.8 & Spring Cloud Stream 4.1.4
Spring-Boot 3.4.0 & Spring Cloud Stream 4.2.0
Note the difference for
Constructing binder child context for undefined
of >500ms.Note that the
undefined
binder is a dummy binder that does nothing. Therefore, there is no connection related costs in the above.Spring-Boot Change
We have identified the specific Spring Boot commit responsible for the slower startup times.
Slower Spring Cloud Stream Operations
We also identified which operations have become more expansive.
bindingServiceProperties.getBinder(binding)
and have observed that when the binding is a producer binding, the getBinder() call takes~4ms
instead of0ms
. CallinggetBinder(binding)
on a consumer binding is still fast and takes 0ms.Summary
A recent Spring-Boot change to child/parent contexts slows down startup. Can you tell how the change may be affecting Spring Cloud Stream?
The text was updated successfully, but these errors were encountered: