2159

PHP程式經驗 #1 -- 靜態的物件比動態物件快

“
驗證 1. 使用動態物件函式 > 使用靜態物件函式。 2. 使用有宣告的靜態物件函式 > 使用動態無宣告的靜
„

分享此文連結 //n.sfs.tw/11453

分享連結 PHP程式經驗 #1 -- 靜態的物件比動態物件快@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-22 16:33:19 最後編修
2017-07-18 08:14:08 By 張○○
 

自動目錄

驗證

1. 比較使用動態物件函式和使用靜態物件函式的執行速度差異。

2. 同樣使用靜態方法,比較有先宣告static方法的差異。

測試程式

class bench {
  public function a() { return 1; }
  public static function b() { return 1; }
}
// 動態宣告物件
$s = microtime(1);
$obj = new bench();
for ($i = 0; $i < 100000; $i++) $obj->a();
$e = microtime(1);
echo "Dynamic Method: ".($e - $s)."\n";   //

// 使用靜態方法使用未宣告為static的方法
$s = microtime(1);
for ($i = 0; $i < 100000; $i++) bench::a();
$e = microtime(1);
echo "Dynamic Static Method: ".($e - $s)."\n";

// 使用靜態方法使用static方法
$s = microtime(1);
for ($i = 0; $i < 100000; $i++) bench::b();
$e = microtime(1);
echo "Declared Static Method: ".($e - $s)."\n";

結果

Dynamic Method: 0.048645973205566   (最快)
Dynamic Static Method: 0.17413401603699 (最慢)
Declared Static Method: 0.056394100189209

結論

1. 除非必要不要用靜態方式

無論是不是有直接宣告靜態方法,使用靜態方法的執行時間都比動態方法來得久,尤其是直接用靜態方法使用無static修飾元的方法,所耗費的時間是動態方法的3倍多。

2. 使用靜態方式務必宣告

若要使用靜態方法,在函數前請加上static修飾元,這樣程式在編譯時會保留記憶體給他。

參考資料

[1] High Performance PHP  -- Ilia Alshanetsky


原文2010-06-03 23:13:42

END

你可能感興趣的文章

[PHP] 移除檔案的UTF8 BOM 移除檔案的UTF8 BOM

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

設定Google analytics API #1 -- Google網站上的設定 讓你的網站能夠存取你的Google analytics上面的資料

[PHP] UTF8中取出字串中特定的字數 要將字串,例如資料庫取出的TEXT,取出特定的字數

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper

設定Google analytics API #3 -- 查詢範例 讓你的網站能夠存取你的Google analytics上面的資料

隨機好文

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

UTF8中文字/全形一覽 快速查詢urf-8的中文字,共計13246中文字(5401常用字+7652罕用字+日文或編號),292全形符號,27半形符號。

[AS3] 變數型態 基本類型宣告 as3 有下列幾種基本類型:string, int, number, object, boolean, n

在Centos7 下安裝 Wildfly10 wildfly以前叫JBoss,2014.11.20改名叫Wildfly,起始版本是Wildfly8,現在已經出到Wil

[Centos6] 安裝wordpress Centos 6下安裝wordpress,非常簡單

精讚::