ID: 40165 Updated by: [EMAIL PROTECTED] Reported By: gacek at intertele dot pl -Status: Feedback +Status: Bogus Bug Type: Performance problem Operating System: Linux FC4 x86_64 PHP Version: 5.2.0 New Comment:
count(array()) just returns ht->nNumOfElements, this is probably the most simple function in PHP. define() copies (malloc() + memcpy()) the value, duplicates the name (malloc() + memcpy() again) and adds it to the hash of constants (which might involve realloc() etc.). So it's kinda expected that a function which does almost nothing is a bit faster, like 7x or 6x, which are the numbers I can see myself. Previous Comments: ------------------------------------------------------------------------ [2007-01-19 11:33:51] [EMAIL PROTECTED] Not enough information was provided for us to be able to handle this bug. Please re-read the instructions at http://bugs.php.net/how-to-report.php If you can provide more information, feel free to add it to this bug and change the status back to "Open". Thank you for your interest in PHP. ------------------------------------------------------------------------ [2007-01-19 11:33:22] gacek at intertele dot pl This is sample of "pprofp -u" output from fairly complex app: Total Elapsed Time = 2.47 Total System Time = 0.35 Total User Time = 1.36 Real User System secs/ cumm %Time (excl/cumm) (excl/cumm) (excl/cumm) Calls call s/call Memory Usage Name -------------------------------------------------------------------------------------- 13.9 0.24 0.24 0.19 0.19 0.04 0.04 850 0.0002 0.0002 0 define 12.1 0.27 0.27 0.16 0.16 0.05 0.05 18653 0.0000 0.0000 0 count 10.9 0.15 0.15 0.15 0.15 0.04 0.04 11652 0.0000 0.0000 0 is_array 9.1 0.26 0.26 0.12 0.12 0.03 0.03 15489 0.0000 0.0000 0 each 6.2 0.18 0.18 0.08 0.08 0.02 0.02 9012 0.0000 0.0000 0 array_shift 4.1 0.08 0.08 0.06 0.06 0.02 0.02 5402 0.0000 0.0000 0 ereg_replace 4.1 0.04 0.04 0.06 0.06 0.01 0.01 655 0.0001 0.0001 0 mysql_fetch_array 3.8 0.07 0.07 0.05 0.05 0.01 0.01 5277 0.0000 0.0000 0 urlencode 2.9 0.04 0.04 0.04 0.04 0.00 0.00 2520 0.0000 0.0000 0 func_num_args 2.9 0.05 0.05 0.04 0.04 0.00 0.00 1465 0.0000 0.0000 0 sprintf ------------------------------------------------------------------------ [2007-01-19 11:28:44] gacek at intertele dot pl Description: ------------ When playing with apd profiler, I have noticed huge cost of define() call. It's over 20x the cost of average count() call. Might it be apd inaccuracy or define() specifics, or define() implementation is heavily broken? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40165&edit=1