关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
来源:互联网 发布:spark实现knn算法 编辑:程序博客网 时间:2024/05/01 12:53
原创:www.5iphp.com
作者:jason
首先说一下我的运行环境winxp+php5.2.5+apache2.2.8+5.0.27-community-nt
我想测试插入5万条数据到数据库里。
页面如下
<?php
global $begin;
global $end;
$begin = microtime(TRUE);
try {
$dsn = "mysql:host=localhost;dbname=kaixin";
$db = new PDO($dsn, 'root', '111');
$db->exec("set names 'utf8'");//默认编码
$db->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
for($i=1; $i<5000; $i++){
$sql = "insert into `article` (`title`, `content`, `time`, `author`, `ip`) value ('文章标题".$i."', '内容".$i."',
'1227237892','kaixin','127.0.0.1')";
$db->exec($sql);
}
$end = microtime(TRUE);
$time = $end-$begin;
echo "执行了".$time."s";
} catch (Exception $e) {
echo "Failed: " . $e->getMessage();
}
?
执行这段代码,只能插入大概1000条左右的数据,这样页面就不执行了。
测试页面的执行时间大概都是29秒左右,也就是页面的最大执行时间是30秒。
知道set_time_limit函数,可以设置页面执行时间。
set_time_limit函数用法如下:
本函式用来设定该页最久执行时间。内定值是 30 秒,在 php.ini 中的 max_execution_time 变数设定,若设定为 0 则不限定最久时间。当执行到该函数时,才开
始计算。例如,若内定是 30 秒,而在执行到该函数前已执行了 25 秒,而用本函式改为 20 秒,则该页面最长执行时间为 45 秒。
我把这个set_time_limit函数加到了程序里,
<?php
set_time_limit(0);
global $begin;
global $end;
$begin = microtime(TRUE);
...
?>
发现页面执行时间还是29秒左右,没有起作用。
看到网上有人说,php.ini里的safe_mode如果为on,本函数不执行。查了我的php.in里的safe_mode=off。
我又试着把set_time_limit(0);加入到for循环里。
<?php
...
for($i=1; $i<5000; $i++){
set_time_limit(0);
$sql = "insert into `article` (`title`, `content`, `time`, `author`, `ip`) value ('文章标题".$i."', '内容".$i."',
'1227237892','kaixin','127.0.0.1')";
$db->exec($sql);
}
...
?>
也没有起作用。
最后在网上查到,有人说,“set_time_limit函数最好是在linux下执行,windows执行可能也无效”。彻底对这个函数失去信心了,估计是因为我是windows系统的原因。
只能修改php.ini里的max_execution_time = 30了。这个默认是30秒,我修改为max_execution_time = 300.重新启动apache服务器。
结果执行时间为140秒左右,5000条数据终于插入了。
看来,windows下这个页面执行时间还是在php.ini里控制,修改max_execution_time。
从上面的实例也可以得出,如果用PDO往MYSQL里面插入数据的话。插入五千条大概140多秒时间,插入1万条大概260多秒时间。
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- set_time_limit(0) 设置程序执行时间的函数
- php中设置set_time_limit不起作用的解决方法
- 关于php的set_time_limit和进程结束的问题
- php set_time_limit() 函数
- php set_time_limit() 函数
- php 中的set_time_limit()函数
- set_time_limit 不起作用
- windows下hosts文件不起作用的问题
- 获取php页面的执行时间
- php中set_time_limit()函数运用
- php中(包括织梦cms)set_time_limit(0)不起作用的解决方法
- 关于PHP的超时--set_time_limit与CURLOPT_TIMEOUT思考
- 关于在页面提交后reset按钮就不起作用的问题
- php函数extract、set_time_limit、compact、http_build_query的使用
- php计算一个页面执行时间函数写法
- Windows下利用C语言获得函数的执行时间
- Ubuntu9.04 正式版发布时间的WEB倒计时代码
- ETL学习之八:添加日志记录
- J2EE 入门1
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- 字符串处理拆分字符串到列
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- 库存地
- VFP8.0以后版本中curosr的差别
- symbian 2nd中从屏蔽接入点选择以及创建新的接入点
- 欢迎大家通过这个博客来提问书中的疑难问题!
- CMS
- java中的URLEncoder和URLDecoder类保存中文cookie
- DNS
- JBoss4.2.2配置及优化