這篇是比較導入變數給物件的函式func1運作的速度與帶入變數給物件中的變數後再經由物件的函式func2來運作的速度
物件如下(函式採用implode())
- 代碼: 選擇全部
class test
{
var $str=array();
function set_str($str){$this->str=$str;}
function func1($str){@implode(',',$str);}
function func2(){@implode(',',$this->str);}
}
運作的Method如下
- 代碼: 選擇全部
//Method 1
for($a=0;$a < $process_time;$a++)
{
$cls->func1(array(1,2,3));
}
//Method2
$cls->set_str(array(1,2,3));
for($b=0;$b < $process_time;$b++)
{
$cls->func2();
}
運作結果 寫:
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.00088300000000002 秒.
[color=brown]Method 1[/color] 運作時間:0.00046800000000002 秒.
[color=olive]Method 2[/color] 運作時間:0.00038100000000002 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 22.834645669291 [/color]%
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.00088400000000005 秒.
[color=brown]Method 1[/color] 運作時間:0.00047000000000003 秒.
[color=olive]Method 2[/color] 運作時間:0.00037900000000002 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 24.010554089711 [/color]%
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.00088600000000005 秒.
[color=brown]Method 1[/color] 運作時間:0.000471 秒.
[color=olive]Method 2[/color] 運作時間:0.00037900000000002 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 24.274406332448 [/color]%
另一種Method(Method2的set_str()移入迴圈中)
- 代碼: 選擇全部
//Method 1
$timer->start_timer();
$timer->pause_timer();
for($a=0;$a < $process_time;$a++)
{
$cls->func1(array(1,2,3));
}
$timer->pause_timer();
//Method2
$timer->pause_timer();
for($b=0;$b < $process_time;$b++)
{
$cls->set_str(array(1,2,3));
$cls->func2();
}
運作結果 寫:
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.001358 秒.
[color=brown]Method 1[/color] 運作時間:0.00059800000000002 秒.
[color=olive]Method 2[/color] 運作時間:0.00072900000000001 秒.
[color=brown]Method 1[/color] 比 [color=olive]Method 2[/color] 快[color=blue] 21.906354515048 [/color]%
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.001098 秒.
[color=brown]Method 1[/color] 運作時間:0.00047399999999997 秒.
[color=olive]Method 2[/color] 運作時間:0.00059200000000004 秒.
[color=brown]Method 1[/color] 比 [color=olive]Method 2[/color] 快[color=blue] 24.894514767947 [/color]%
- 代碼: 選擇全部
總運作次數: 50 次.
總運作時間: 0.001096 秒.
[color=brown]Method 1[/color] 運作時間:0.00047300000000006 秒.
[color=olive]Method 2[/color] 運作時間:0.00059299999999995 秒.
[color=brown]Method 1[/color] 比 [color=olive]Method 2[/color] 快[color=blue] 25.369978858326 [/color]%
個人評論 寫:這篇只是單純地比較兩種用法的運作速度,所以結論很簡單
從第一種與第二種Method的寫法來看可知若函式只需要呼叫一次的話採用Method1的方法較能獲得效率
但若要多次呼叫函式的話則先設定變數後再提供物件利用會比傳直徑入運算來得有效率
以上,有任何問題請指教^^