我想找出我的脚本的脚本执行。我使用了下面的代码:
$time_start = microtime(true);
//Here is a script which is extracting almost 13,000 product using an API
$time_end = microtime(true);
$execution_time = ($time_end - $time_start)/60;
echo '<b>Total Execution Time:</b> '.$execution_time.' Mins';
这个脚本在本地主机上运行良好,但在生产服务器上不工作。另一方面,如果我将产品数量减少到4,000,那么它在生产服务器上工作。
为什么会这样?
感谢如果我在脚本末尾添加echo 'mouse';
,那么它也不会打印。
这可能是您的脚本面临超时的情况。
因此,请尝试在脚本文件的最上方添加超时限制。
set_time_limit(0);
$time_start = microtime(true);
//Here is a script which is extracting almost 13,000 product using an API
$time_end = microtime(true);
$execution_time = ($time_end - $time_start)/60;
echo '<b>Total Execution Time:</b> '.$execution_time.' Mins';
在脚本结束之前发生了一些事情。也许是暂停一下。请确保您的最大执行时间足够高。
如果你从控制台运行你的脚本,检查最大执行时间:
php -i | grep max_execution_time
请记住,控制台的php.ini可能与web服务器使用的php.ini不同。
如果不是execution_time问题,尽量在提取产品的代码块中冗长。比如:
echo "Extracting product ".$i." (".(microtime(true) . $time_start).")'r'n";
这样你就可以在你的控制台上看到发生了什么以及时间是如何花费的。