Faster Sort filter (requires PHP 5.4) #7420
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.
Made sort much faster by using builtin php methods. Currently, we sort via
usort
in PHP. This is quite slow especially when we sort many rows, eg 25k rows or more. The time needed to sort depends a lot on the data, the column to sort, etc. that's why it is hard to say how much performance improvement we will gain. On 25k rows it can drop from eg before about 900ms to 500ms.As I side effect I fixed many bugs that were in the previous sort filter implementation, the code is much better tested and it does now use a secondary column on nb_visits or label if possible. refs #7401
Some of the fixed bugs include:
false
for the selected column.We need to wait till we drop support for PHP 5.3 since the sort flags
SORT_NATURAL
andSORT_FLAG_CASE
were added in PHP 5.4 which this pull request requires.refs #4768