防google搜尋統計指令碼執行時間。

來源:互聯網
上載者:User
google|指令碼|統計|執行 <?php

// class PHP_timer開始
class PHP_timer {

    // 用來收集指令碼執行過程中的資訊
    var $points = array();
    
    // 在指令碼的開始處調用這個函數
    function start() {
        // 請看後面的addmarker函數
        $this->addmarker("Start");
    }
    // end function start()

    // 在指令碼的結束處調用這個函數
    function stop() {
        // 請看後面的addmarker函數
        $this->addmarker("Stop");
    }
    // end function stop()

    // 這個函數用來在指令碼執行時增加一個標記
    // 需要一個用來描述的名字
    function addmarker($name) {
        // 調用 jointime() 函數並將microtime() 的傳回值傳遞過去
        $markertime = $this->jointime(microtime());
        // $ae 得到當前數組的大小,也就是當前的插入位置
        // currently in the $points array
        $ae = count($this->points);
        // 在數組中儲存timestamp 和說明
        $this->points[$ae][0] = $markertime;
        $this->points[$ae][1] = $name;
    }
    // end function addmarker()

    // 這個函數會處理從microtime() 返回的字串
    function jointime($mtime) {
        // 分解字串
        $timeparts = explode(" ",$mtime);
        // 串連兩個字串,並去除小數部分的0
        $finaltime = $timeparts[1].substr($timeparts[0],1);
        // 返回串連後的字串
        return $finaltime;
    }
    // end function jointime()
    
    // 這個函數簡單的顯示從開始到結束所需要的時間
    function showtime() {
        echo bcsub($this->points[count($this->points)-1][0],$this->points[0][0],6);
    }
    // end function showtime()
    
    // 這個函數顯示所有的在指令碼運行過程中收集到的資訊
    function debug() {
        echo "Script execution debug information:";
        echo "<table border=0 cellspacing=5 cellpadding=5>\n";
        // 這個表格有3列 Marker name, Timestamp, difference
        echo "<tr><td><b>Marker</b></td><td><b>Time</b></td><td><b>Diff</b></td></tr>\n";
        // 第一行是沒有已耗用時間差的
        echo "<tr>\n";
        echo "<td>".$this->points[0][1]."</td>";
        echo "<td>".$this->points[0][0]."</td>";
        echo "<td>-</td>\n";
        echo "</tr>\n";
        // 從數組的元素1開始迴圈顯示,0已經在第一行顯示過了
        for ($i = 1; $i < count($this->points);$i++) {
            echo "<tr>\n";
            echo "<td>".$this->points[$i][1]."</td>";
            echo "<td>".$this->points[$i][0]."</td>";
            echo "<td>";
            // 顯示上下兩行的時間差
            echo bcsub($this->points[$i][0],$this->points[$i-1][0],6);
            echo "</td>";
            echo "</tr>\n";
        }
        echo "</table>";
    }
    // end function debug()
}
// end class PHP_timer

?>


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。