Re: Faster zend sorting implementation
| From: | Xinchen Hui | Date: | Wed, 14 Jan 2015 09:59:41 +0000 |
| Subject: | Re: Faster zend sorting implementation | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-80451@lists.php.net to get a copy of this message | ||
Hey:
I made a PR here: https://github.com/php/php-src/pull/999 for
reviewing
in benchmark this can brings more than 30% performance gain in
array_sort etc functions.
tests fails are related to non-stable vs stable sorting difference.
anyway, I feel it's better to ask you to do a final review, what
do you think?
is there any objections to merge this?
thanks
On Tue, Jan 6, 2015 at 1:08 AM, Xinchen Hui <laruence@php.net> wrote:
> Hey:
>
> I was working on zend_qsort improvement. but I got a problem need
> to be disscussed with you fist..
>
> as we know, previously zend_qsort is not a stable sorting algo.
>
> my draft patch (which already get 0.1% IRs reduce in wordpress)
> is kindof a stable sorting algo, you can find it here
> (https://github.com/laruence/php-src/compare/zend_sort)
>
> so, there is a bc break, like for :
>
> $array = array("o", "O");
> sort($array, SORT_STRING|SORT_FLAG_CASE);
>
> var_dump($array);
>
> previously implementation does the swap:
>
> array(2) {
> [0]=>
> string(1) "O"
> [1]=>
> string(1) "o"
> }
>
> but new implementation doesn't not:
>
> array(2) {
> [0]=>
> string(1) "o"
> [1]=>
> string(1) "O"
> }
>
> do you think such BC break is acceptable? or I still need a RFC? :<
>
> thanks
> --
> Xinchen Hui
> @Laruence
> http://www.laruence.com/
--
Xinchen Hui
@Laruence
http://www.laruence.com/