[分享]檢測用計時器

WOG設定安裝教學

版主: 涅魂, 簫哥


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

[分享]檢測用計時器

文章涅魂 » 2007-02-27 12:25 am

這個是我寫來測Method運作時間用的小工具,發出來的目的即是方便大家檢測Method的運作時間比較,省去撰寫timer的時間,並希望大家能發表文章來分享心得 :D

使用方法非常的簡單,只要在程式中載入後再設置變數就可以用了,如下所示
代碼: 選擇全部
include('./timer.php');
$timer = new timer();

裡面提供四個主要的函式:start_timer(),pause_timer(),stop_timer()跟compare_difference()

前三個工具相信您一看就知道是控制計時器的工具了

start_timer()可以啟動計時器並記下啟動時間,pause_timer()可以記下目前的時間,stop_timer()則是停止計時並記下停止的時間

要注意的是pause_timer()必須經由start_timer()啟動計時器後才有作用

而當執行stop_timer()後pause_timer()也一樣無作用,這是為了模仿計時器的功能才做成這樣的^^

至於compare_difference()則是顯示比較的結果,這個函式必須帶入四個數值才能正常發揮作用,否則會出現錯誤(因為我把除錯部分省略了)

假設計時器設定後如下操作
代碼: 選擇全部
$timer->$start_timer();
...
...
...
$timer->$pause_timer();
...
...
...
$timer->$stop_timer();

則compare_difference()可以如下撰寫以顯示三次紀錄間的時間差與比較
代碼: 選擇全部
$timer->compare_difference(0,1,1,2);
//0=start_timer()紀錄的時間
//1=第一次執行pause_timer()所記下的時間
//2=執行stop_timer()所記下的時間
//比較時會以$this->stamp[$stamp2]-$this->stamp[$stamp1]的時間差來跟$this->stamp[$stamp4]-$this->stamp[$stamp3]的時間差來做比較

另外compare_difference()還會將比較結果以適合PHPBB標籤的格式顯示在textarea內,方便貼在論壇上

至於timer.php裡面還附加的其他函式不一定會用到,只是寫好玩而已XD

timer.php 寫:檔案名稱:timer.exe
檔案格式:exe
檔案編碼:big5
檔案大小:49.6 KB
檔案下載:點我下載

以上,有問題歡迎發問 :)

不知道該發WEB GAME 技術專區還是這邊XD


最後由 涅魂 於 2007-05-01 10:11 pm 編輯,總共編輯了 1 次。

harrykspy
 
文章: 63
註冊時間: 2006-06-18 11:28 pm

文章harrykspy » 2007-02-27 4:37 pm

滿不錯的~
不過還是由大大來使用吧XD



頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

文章齋月 » 2007-02-27 5:34 pm

大概是我太笨了 下載後完全不會用  :oops:

沒GP可給了 等明天  :wink:




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-02-27 7:30 pm

呵呵,大概是沒有例子所以比較不好操作吧

下面附上一個例子,這是陣列取值篇中用的寫法
代碼: 選擇全部
include('./timer.php');
$timer =new timer;
$process_time=5;
$arr=array(1,2,3,4,5,6,7,8,9,10,21,45,789,546,511);
//Method 1
$timer->start_timer();
for($a=0;$a < $process_time;$a++)
{
   for($i=0;$i < count($arr);$i++)
   {
      
   }
}
$timer->pause_timer();
//Method2
$timer->pause_timer();
for($b=0;$b < $process_time;$b++)
{
   foreach($arr as $key => $value)
   {
      
   }
}
$timer->stop_timer();
$timer->process_time=$process_time;
$timer->compare_difference(0,1,2,3);

這樣是不是比較清楚了呢 :D


圖檔

harrykspy
 
文章: 63
註冊時間: 2006-06-18 11:28 pm

文章harrykspy » 2007-02-27 7:42 pm

涅魂 寫:呵呵,大概是沒有例子所以比較不好操作吧

下面附上一個例子,這是陣列取值篇中用的寫法
代碼: 選擇全部
include('./timer.php');
$timer =new timer;
$process_time=5;
$arr=array(1,2,3,4,5,6,7,8,9,10,21,45,789,546,511);
//Method 1
$timer->start_timer();
for($a=0;$a < $process_time;$a++)
{
   for($i=0;$i < count($arr);$i++)
   {
      
   }
}
[color=red]$timer->pause_timer();
//Method2
$timer->pause_timer();[/color]
for($b=0;$b < $process_time;$b++)
{
   foreach($arr as $key => $value)
   {
      
   }
}
$timer->stop_timer();
$timer->process_time=$process_time;
$timer->compare_difference(0,1,2,3);

這樣是不是比較清楚了呢 :D

為何有兩個$timer->pause_timer(); 的....
不明白...


[fade]Forum[/fade]http://www.hkspy.com

[fade]Wog Online[/fade]圖檔


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-02-27 8:39 pm

連用兩次就代表記下兩次時間,記下的時間會存在timer class裡面的stamp陣列裡面

下面列出上面的範例中所建立的stamp數據的來源
代碼: 選擇全部
stamp[0] --- $timer->start_timer()
stamp[1] --- $timer->pause_timer() (第一次呼叫)
stamp[2] --- $timer->pause_timer() (第二次呼叫)
stamp[3] --- $timer->stop_timer()

至於連續呼叫兩次的目的,是希望能夠省去兩次pause_timer()間程式運作所花費的時間 :wink:


圖檔

頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

文章齋月 » 2007-02-28 7:18 am

喔喔 原來是呼叫這個程式喔 XDD

我還以為是直接開啟 @_@

太笨了 一口一||

現在懂了 ︿_︿



小勝
 
文章: 3
註冊時間: 2007-03-10 10:14 pm

文章小勝 » 2007-03-11 6:47 pm

我不懂得安裝..教我可以嗎..?




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-03-11 7:22 pm

這個不用安裝喔,這個是要在程式中用include來載入後再將一個變數設為timer物件

如果看不懂的話建議您先去認識物件(class)的用法,相信這樣您應該就能看懂了^^


圖檔


回到 精華區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客

cron