ID: 39879
User updated by: roberto at spadim dot com dot br
Reported By: roberto at spadim dot com dot br
-Status: Bogus
+Status: Open
Bug Type: Performance problem
Operating System: ALL
PHP Version: 5.2.0
New Comment:
i read the source, but
we really need passed parameter?
could we check if type is string, if it is string return without
convertion?
can we optimize this function by this way?
using &$str could have better performace?
Previous Comments:
------------------------------------------------------------------------
[2006-12-19 09:28:51] [EMAIL PROTECTED]
That's because you're comparing apples to oranges.
Internal function has to copy the passed parameter, while userspace
function may use copy-on-write, avoiding the malloc-memcpy-free cycle
on each iteration.
------------------------------------------------------------------------
[2006-12-18 22:03:39] roberto at spadim dot com dot br
Description:
------------
maybe strval isn't otimized
see reproduce code
Reproduce code:
---------------
<?php
function ret($st){return($st);}
$qnt=1000000;
$str=str_repeat("ae",1000);
$st1=microtime(1);
for ($i=0;$i<$qnt;$i++)
ret($str);
echo (microtime(1)-$st1)."\n";
$st1=microtime(1);
for ($i=0;$i<$qnt;$i++)
strval($str);
echo (microtime(1)-$st1)."\n\n";
?>
Expected result:
----------------
expect to result 2
be small than result 1
Actual result:
--------------
result 1 is bigger than 2
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39879&edit=1