perf: improve performance of Baker.get_fields()
#452
Merged
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.
Describe the change
#352 was meant to be a cosmetic change which introduced a performance regression.
This PR reduces the time complexity of
get_fields()
from O(n*m) to O(n).I have a project of significant size (over 50k tests), this change reduces the total runtime of the test suite by ~200% back to what we saw before release 1.8.0.
I also tried other approaches, for example using
filter
or turning this into a cached property but these didn't achieve a better result.PR Checklist