PHP中的执行时间

时间:2013-10-25 01:32:35

标签: php execution-time

我有一些foreach循环,并且每次使用

set_time_limit(30)

将计数器重新启动回零。

现在脚本运行的时间更长(我使用API​​获取5000-10000篇文章并将它们存储在数据库中),但过了一段时间(当它处理了大量数据时)我得到“最长执行时间为30秒超过”。

可能是因为记忆力不足吗?我怎么能解决这个问题?

脚本使用API​​获取文章,并且foreach循环基本上像这样使用

foreach($articles as $article)
{
//do stuff with single article using $article

set_time_limit(30);
}

并且我不认为获取和处理单篇文章需要超过30秒,但显然在脚本运行一段时间后,它会达到该限制。我究竟做错了什么?我不想让脚本通过使用set_time_limit(9000)或类似的东西来执行超过30秒的5秒作业,这可能会完成工作,但我想这不是一个好方法解决问题?

3 个答案:

答案 0 :(得分:3)

为什么不做你的

set_time_limit(0);

您脚本的第一行?

答案 1 :(得分:1)

如果出于某些疯狂的原因,您认为必须施加时间限制,请考虑以下事项:

set_time_limit(0);
$n = 0; $inc = 1;
foreach($article as $v){
  // do stuff with $v - Less characters is faster
  $n+=$inc;
}
set_time_limit($n);

更改$inc以满足您的需求。

答案 2 :(得分:0)

试试这个:

PHP has a function set_time_limit which sets the time limit of execution.
It has one argument set in seconds.
If you use like this,
set_time_limit(0)
then it will set unlimited time of execution.

Write this code in top.

您可以在此处参考更多内容:http://php.net/manual/en/function.set-time-limit.php

  • 感谢