I benchmarked this more carefully at
https://github.com/Ocramius/array_change_keys-benchmark - the results are
indeed not matching what is represented in the RFC.

Specifically, `array_change_keys` has performance that is comparable to
`array_combine` + `array_map`, and looping is still faster by at least 35%.

This is mostly due to the function calls, which is what I expected.

Feel free to patch the benchmarks, should they be buggy. Also feel free to
add more scenarios.

Cheers,

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/

On 30 May 2016 at 20:55, Nikita Popov <nikita....@gmail.com> wrote:

> On Mon, May 30, 2016 at 3:40 AM, Colin O'Dell <colinod...@gmail.com>
> wrote:
>
>> Marco,
>>
>>
>> >  1. could you also provide the code for the benchmarks? I'd gladly
>> measure
>> > them with an accurate tool
>> >
>>
>> Yeah that would be great!  Here's the benchmark I was using:
>> https://gist.github.com/colinodell/872c1f0c92351af687347c0c8be4f253
>
>
> I can't tell you what exactly this is benchmarking (probably a mix of
> various caches ranging from the Zend MM, via the kernel, to the CPU). The
> only thing it's pretty certainly not benchmarking are different
> implementations of changing keys :) You're basically just penalizing
> whichever implementation comes first.
>
> For a more representative benchmark, reduce the number of elements by a
> factor of 10 or hundred. In which case foreach should win at least against
> the array_map+array_combine implementation.
>
> Regards,
> Nikita
>

Reply via email to