[performance] Improve performance of canonical sorting methods #1730
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.
Context
I was in this class for another ticket and saw some performance opportunities.
Changed
We currently first loop trough all places for both
getPlacesWithMostEvents()
andgetOldestPlace()
, and then sort the arrays based on some field.By directly comparing event counts, we avoid the need to sort the array, reducing complexity, and also lowering the RAM usage because we don't build a tmp array to sort and then throw away..
Because sorting in PHP uses quicksort, which is O(n log n).
This means this change reduces the complexity to a linear O(n)