Edit report at https://bugs.php.net/bug.php?id=63736&edit=1

 ID:                 63736
 Updated by:         johan...@php.net
 Reported by:        ymgve dot aa at gmail dot com
 Summary:            array_key_exists extremely slow on referenced arrays
-Status:             Open
+Status:             Not a bug
 Type:               Bug
 Package:            Performance problem
 Operating System:   Windows
 PHP Version:        5.4.9
 Block user comment: N
 Private report:     N

 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

References disable copy-on-write.
http://schlueters.de/blog/archives/125-Do-not-use-PHP-references.html has some 
details


Previous Comments:
------------------------------------------------------------------------
[2012-12-10 13:39:31] ymgve dot aa at gmail dot com

Description:
------------
When you use array_key_exists() on a referenced array, it performs extremely 
slow compared to isset():

isset time 0.0053699016571045 size 0
isset time 0.0051219463348389 size 10
isset time 0.0032069683074951 size 100
isset time 0.0034000873565674 size 1000
isset time 0.0052909851074219 size 10000
array_key_exists time 0.0055620670318604 size 0
array_key_exists time 0.010941982269287 size 10
array_key_exists time 0.048230886459351 size 100
array_key_exists time 0.38906383514404 size 1000
array_key_exists time 5.6351599693298 size 10000

Due to the time increasing near linearly with the number of elements in the 
array, I assume the code for some reason looks through the array key linearly 
instead of using a hash lookup.

Test script:
---------------
http://pastebin.com/PVrf96an



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63736&edit=1

Reply via email to