计算脚本执行时间时发现,每次请求脚本都要执行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");

解决方案 »

  1.   

    吧txt文件中的内容贴出来看看是啥形式的
      

  2.   

    public function update($table, $fields, $value, $where) {
        $fieldsStr = implode(' , ', $fields );
        $valueStr = implode(' , ', $value);
        $whereStr = implode (',', $where);
        $sql = 'UPDATE ' . $table . ' SET ' . $fieldsStr . ' = ' . $valueStr . 'WHERE ( ' . $whereStr . ' ) ';
    return mysql_query($sql);
    }
    这是我写的一个通用的更新数据的方法   更新多条怎么写!帮帮呢!
      

  3.   

    請求一次,執行三次, 我真的估計是SERVER的問題
      

  4.   

    理論上請求一次,服務器是執行一次 c:\\php\php.exe script.php 的,
    但怎會執行兩次, 會不會服務器的線程亂了套啊....
      

  5.   

    格式倒是很简单:
    0.002634@/var/www/jzb/3g/cost.php@show_cost_page1
      

  6.   

    问题解决了,总结一下!
    这种问题的解决办法:将执行页面中的代码全部注掉,然后一部分一部分的添加进来,然后就能定位到出问题的部分了!
    跟浏览器没关系,跟web服务器没关系,居然是因为html<head>
    <script type="text/javascript" src=""></script>
    <link href="" rel="stylesheet" type="text/css" />
    </head>
    src和href的指向为空,导致向执行页面发出请求,不知道为什么会发生这种事情,也不知道页面是不是全部又执行了一遍(貌似是的),不知道页面前两次执行时的输出输出到哪里去了?
    结贴吧~
      

  7.   

    本帖最后由 xuzuning 于 2011-07-15 16:21:54 编辑
      

  8.   

    这个可以在终端使用PHP命令行来运行下,立马清楚了