ID: 48164
Updated by: j...@php.net
Reported By: uvealonso at gmail dot com
-Status: Open
+Status: Feedback
Bug Type: Performance problem
Operating System: Linux
PHP Version: 5.2.9
New Comment:
I can not reproduce this either and your test scripts are inherently
flawed anyway. Please provice proper reproducing scripts which start
with and don't have any notice/warning/fatal
errors.
Previous Comments:
[2009-05-06 20:07:08] uvealonso at gmail dot com
I can't change the PHP version because the hosting.
Get all the php info here:
http://www.4mula1.es/libraries/pruebas/phpinfo.php
[2009-05-06 20:01:57] f...@php.net
Can't reproduce with 5.2.9 CLI, could you provide some more details
about distribution, sapi, etc?
Or maybe test them on CLI?
(f...@debian):(~/code/src) $ time ./php-5.2.9/sapi/cli/php
~/tmp/while_48164-2.php > FOO2
real0m15.011s
user0m0.120s
sys 0m14.893s
(f...@debian):(~/code/src) $ time ./php-5.2.9/sapi/cli/php
~/tmp/while_48164.php > FOO
real0m15.020s
user0m0.160s
sys 0m14.749s
==> FOO <==
START AT: 1241598435.2784
==> FOO2 <==
START AT: 1241598254.2014
==> FOO <==
END AT: 15.04053116
==> FOO2 <==
END AT: 15.02145767
[2009-05-06 19:49:40] uvealonso at gmail dot com
Ok, I give you this 2 codes:
First:
/
$tiempo1=microtime(true);
print "START AT: ".$tiempo1."";
//DO IT 15 SECONDS
while((microtime(true)-$tiempo1)<15){
//PRINT EVERY STEP
print "STEP: ".(microtime(true)-$tiempo1)."";
}
//IT MUST END 15 SECS AFTER THE START
print "END AT: ".(microtime(true)-$tiempo1);
Second:
//
$tm1=microtime(true);
print "START AT: ".$tm1."";
$t=0;
//DO IT 15 SECONDS
while((microtime(true)-$tm1)<15){
//PRINT STEPS OF 0.1 SECS
if ((microtime(true)-$tm1)-$t>0.1){
print "STEP: ".(microtime(true)-$tm)."";
$t=microtime(true)-$tm1;
}
}
//IT MUST END 15 SECS AFTER THE START
print "END AT: ".(microtime(true)-$tm1);
The 2 scripts must stop inmediately after 15 secs.
The first works fine, but 2ยบ stops after 10 seconds...
You cant test it here:
First example:
http://www.4mula1.es/libraries/pruebas/timeout-test-1.php
Second example:
http://www.4mula1.es/libraries/pruebas/timeout-test-2.php
PS: They have exactly the same code that I have wrote in this comment.
[2009-05-06 13:36:47] f...@php.net
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.
I really think we need even a rough description what func_modify()
does. From your description it could be a single complicated task or
something with thousands of iterations
[2009-05-06 13:01:00] uvealonso at gmail dot com
Description:
Sometimes, the script stops 10 secs after the start, and others, it
doesn't stop and complete the operations...
I have tested with the same data and parameters, and sometimes, it
stops 10 secs after the script starts.
max_execution_time is 50
Reproduce code:
---
print "start";
while ($a){
func_modify($a); //Here is a function that modifies $a
}
print "end";
Expected result:
start
end
Actual result:
--
sometimes:
"start"
or
"start
end"
--
Edit this bug report at http://bugs.php.net/?id=48164&edit=1