GORAGOD.com

เวลาที่ใช้ในการประมวลผลเพจ xxxx วินาที

ตัวอย่างการทำการแสดงผลการประมวลผลเพจ หรือ เวลาที่ใช้ไปสำหรับการ query โดยการใช้ class Timer ที่ผมใช้ในการทำ bench mark มาทำงานแทนครับ

อันดับแรกสร้าง class Timer ขึ้นมาก่อน ดังโค้ด แล้ว save ไว้ในชื่อ timer.php

<?php
class Timer{
    private $elapsedTime;

    // start timer
    public function start()
    {
        if( !$this->elapsedTime = $this->getMicrotime() )
        {
            throw new Exception( 'Error obtaining start time!' );
        };
    }

    // stop timer
    public function stop()
    {
        if( !$this->elapsedTime = round( $this->getMicrotime() - $this->elapsedTime , 10 ) )
        {
            throw new Exception( 'Error obtaining stop time!' );
        };
        return $this->elapsedTime;
    }

    // define private 'getMicrotime()' method
    private function getMicrotime()
    {
        list( $useg , $seg ) = explode( ' ' , microtime() );
        return ( (float)$useg + (float)$seg );
    }
};
?>

สำหรับการเขียนโค้ดเพื่อแสดงผล ก็ต้อง include เอา timer.php เข้ามาในเพจ แล้วก็เรียกใช้งาน class Timer โดยต้องวางโค้ด start(); ใว้ในตอนต้นๆของไฟล์ก่อนการ query และใช้ stop() เพื่อจบการจับเวลา และคืนค่าเวลาที่ใช้ไป แล้วเราก็ไปจัดการแสดงผลอีกที ดังตัวอย่างการใช้งาน

<?php
 // เริ่มต้นการใช้งาน แทรกส่วนนี้ไว้ตอนต้นๆของเพจ ก่อนการประมวลผล
 include( 'timer.php' );
 $bm = new Timer; // เรียกใช้งาน class
 $bm->start(); // เริ่มต้นจับเวลา
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<p>ประมวลผลต่างๆที่ตรงนี้ จะเขียน query กี่ query ก็เขียนไป</p>
<p>
<?php
 for( $i = 0 ; $i < 100000 ; $i++ )
 {
  echo $i;
 }
?>
</p>
 
<?php
 echo 'เวลาที่ใช้ในการประมวลผลเพจ '.$bm->stop()'. วินาที' // แสดงเวลาที่ใช้ไป
?>