Improve Binder performance slightly #20755
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
I'm currently trying to improve the startup of a medium sized app and found a couple of minor optimization opportunities in the
Binder
logic:context.depth
is 0. (Was there before, but only as a subsequent condition)ConfigurationProperty
s inIndexedElementsBinder:: getKnownIndexedChildren
until it's needed. The idea is that this is only really necessary if there are unbound properties - which should be the exception rather than the norm.Applying this patch shows me the following results for the initializr benchmarks we used in the past already:
I also ran 2.3.0.M3 vs. this patch against the config example which we used in the past to optimize the binding of large properties:
I should note that I see relatively volatile timings on my local machine, but always in favor of the new patched version. Nonetheless, I'd give it a try before merging this if I were you - even if the improvements seem relatively straight-forward ;-)
Let me know what you think.
Cheers,
Christoph