Re: set_time_limit () - CPU time or elapsed time?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12 Apr 2014, at 20:14, Tim Streater <timstreater@xxxxxxxxxxxx> wrote:

> This function limits the"execution time" for a script. Is this CPU time or elapsed (wall-clock) time?

It’s elapsed time*, and technically it doesn’t so much limit the execution time so much as set it from the moment you call the function.

> I'm asking because I'm running Win7 in a VirtualBox VM under OS X Mavericks. I've got an app that runs a number of scripts, using PHP 5.5.9. All runs correctly, but quite slowly, and a one script reports taking 20 secs or so of elapsed time when I might have expected 2 or 3 at most (as the same script running under OS X does).

There could be any number of reasons why there is such a big difference between the different platforms. Virtual boxes tend to be significantly slower than their host machines, especially when it comes to IO operations.

> I know that there is a note in the online doc for this function that says that under windows, extra time such as database calls is included. Would that include SQLite calls which wouldn't be included for the OS X version?

* Under Windows it’s elapsed time spent executing the PHP script regardless of what it’s doing, but under other platforms it’s elapsed time spent executing PHP code only (so not including time spent executing other processes, running database queries, etc). So yes, time spent executing sqlite queries would only be included on Windows. If your queries are causing the order of magnitude difference in execution time your problem has nothing to do with PHP!

> I've got a windows user whose scripts are actually running out of time, so I may have to add a php_value to the apache config to crank up the time limit.

Rather than doing that I would advise the user to modify their script to keep calling set_time_limit at regular intervals to extend the time allowed. Doing that will ensure that if the script actually gets stuck in a loop or gets blocked by something external the script will be killed and the effect will be minimal. When I’m doing something like processing large data files I’ll call set_time_limit on every iteration of the loop with a reasonable maximum time for each chunk of the file.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux