GORAGOD.com

freelance, web developer, web designer, hosting, domain name

เวลาที่ใช้ในการประมวลผลเพจ 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()'. วินาที' // แสดงเวลาที่ใช้ไป
?>

 

0SHAREFacebookLINE it!
^