ID: 39879 Updated by: [EMAIL PROTECTED] Reported By: roberto at spadim dot com dot br -Status: Open +Status: Bogus Bug Type: Performance problem Operating System: ALL PHP Version: 5.2.0 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [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