计算脚本执行时间时发现,每次请求脚本都要执行3次,这是为什么?应该往哪方面找问题?开始没发现,后来计算脚本执行时间需要向文件“exec_time.txt”中写入每次的执行时间,结果发现有的脚本每次请求,记录时间的文件“exec_time.txt”中都出现三个执行时间!计时器的代码:class calc_time
{
private $begin_time=array();
private $i=0;
public function __construct ()
{
$this->begin_time = gettimeofday();
} public function script_over ($end_point)
{
$tmp = gettimeofday();
$time = ($tmp["usec"] - $this->begin_time["usec"])/1000000;
$file = fopen("exec_time.txt","a+");
$this->i++;
fwrite ($file, $time."@".$_SERVER["SCRIPT_FILENAME"]."@".$end_point.$this->i);
fwrite ($file, "\n");
fclose ($file);
}
}
请求脚本page.php$calc = new calc_time();
//...
$calc->script_over("endpoint");
{
private $begin_time=array();
private $i=0;
public function __construct ()
{
$this->begin_time = gettimeofday();
} public function script_over ($end_point)
{
$tmp = gettimeofday();
$time = ($tmp["usec"] - $this->begin_time["usec"])/1000000;
$file = fopen("exec_time.txt","a+");
$this->i++;
fwrite ($file, $time."@".$_SERVER["SCRIPT_FILENAME"]."@".$end_point.$this->i);
fwrite ($file, "\n");
fclose ($file);
}
}
请求脚本page.php$calc = new calc_time();
//...
$calc->script_over("endpoint");
$fieldsStr = implode(' , ', $fields );
$valueStr = implode(' , ', $value);
$whereStr = implode (',', $where);
$sql = 'UPDATE ' . $table . ' SET ' . $fieldsStr . ' = ' . $valueStr . 'WHERE ( ' . $whereStr . ' ) ';
return mysql_query($sql);
}
这是我写的一个通用的更新数据的方法 更新多条怎么写!帮帮呢!
但怎會執行兩次, 會不會服務器的線程亂了套啊....
0.002634@/var/www/jzb/3g/cost.php@show_cost_page1
这种问题的解决办法:将执行页面中的代码全部注掉,然后一部分一部分的添加进来,然后就能定位到出问题的部分了!
跟浏览器没关系,跟web服务器没关系,居然是因为html<head>
<script type="text/javascript" src=""></script>
<link href="" rel="stylesheet" type="text/css" />
</head>
src和href的指向为空,导致向执行页面发出请求,不知道为什么会发生这种事情,也不知道页面是不是全部又执行了一遍(貌似是的),不知道页面前两次执行时的输出输出到哪里去了?
结贴吧~