Hi,
after opening #21394 I thought I ran some benchmarks again on a project with a large amount of configuration properties. We've used https://github.com/martinvisser/config-properties-example in the past for this.
When doing so, I get the following results:
| RC1 | Snapshot | |
|---|---|---|
| 5.218 | 5.639 | |
| 5.737 | 5.917 | |
| 5.417 | 5.696 | |
| 5.439 | 5.739 | |
| 5.111 | 5.786 | |
| 5.133 | 5.854 | |
| 5.134 | 5.677 | |
| 5.335 | 6.680 | |
| 5.227 | 6.011 | |
| 5.250 | 5.778 | |
| Mean | 5.300 | 5.878 | 
| Range | 0.626 | 1.041 | 
As you can see, the latest snapshot is about half a second slower than RC1. I'm not quite sure yet if this can be only traced back to the new hashCode calculation that was introduced in #20625, so I thought I better open an issue to investigate.
Cheers, Christoph
Comment From: dreis2211
After #21394 was merged I see roughly the same numbers, so it didn't really improve things.
Comment From: dreis2211
Further investigation shows the following differences between RC1 and current snapshot builds:
This seems to be related to https://github.com/spring-projects/spring-boot/commit/b4963d2463188153a9dd2e34af6b48dc5b47be51 or the work done in #20625 or a combination of both. But I can't pinpoint it, yet.
Comment From: philwebb
Thanks for spotting this.
Comment From: philwebb
@dreis2211 I've pushed something that I think will make a difference. Could you try your sample app again and see if things have improved?
Comment From: dreis2211
@philwebb We're good. It's even better than in 2.2.7 now. Thanks a lot.
| RC1 | Snapshot | |
|---|---|---|
| 5.641 | 4.242 | |
| 6.445 | 4.123 | |
| 5.592 | 4.270 | |
| 6.138 | 4.537 | |
| 5.471 | 4.185 | |
| 5.846 | 4.149 | |
| 6.517 | 4.206 | |
| 6.522 | 4.198 | |
| 5.442 | 4.187 | |
| 5.664 | 4.164 | |
| Mean | 5.928 | 4.226 | 
| Range | 1.080 | 0.414 | 
| 2.3.0 | 2.2.7 | |
|---|---|---|
| 4.314 | 5.196 | |
| 4.016 | 5.895 | |
| 4.195 | 6.808 | |
| 4.117 | 6.681 | |
| 4.229 | 6.490 | |
| 4.102 | 6.702 | |
| 4.080 | 6.766 | |
| 4.025 | 6.771 | |
| 4.084 | 6.563 | |
| 4.082 | 6.223 | |
| Mean | 4.124 | 6.409 | 
| Range | 0.298 | 1.612 | 
Comment From: mbhave
@dreis2211 Out of curiosity, did you do a local build to get the latest snapshot? Asking because I don't think repo.spring.io has this change yet due to a failed build.
Comment From: dreis2211
I did, @mbhave
Comment From: mbhave
thanks for confirming!