[精讚] [會員登入]
1926

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

你可能感興趣的文章

[PHP7] 讀取mysql資料庫的傳統方法 使用傳統預設的方法來連結mysql資料庫

[Codeingitor4] 使用recaptcha v3前後端認證 為了防止機器人說惡意攻擊,我們引入了 recaptcha,此篇結合 php 框架codeignitor4作前後端認證。

[phpmyadmin] 錯誤:您應升級到 MySQL 5.5.0 或更新版本 使用phpmyadmin4出現錯誤:您應升級到 MySQL 5.5.0 或更新版本的解決方式

PHP程式經驗 #2 -- print和echo的差異 常在寫php的人一定會想知道echo和print這兩個函數有什麼不一樣 驗證 1. 比較print 和echo 函式的執

[PHP] codeignitor4+ smarty4 這篇整合 php 的framework codeignitor4 + smarty4。

[PHP] 將UTF8中文字轉成10進位或16進位數值 原本為了處理 preg_match 中文字的問題[2],用php把中文字轉換成10進位和6進位的數值編碼

隨機好文

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

[AS3] 我做的唯一一個Flash As3遊戲UFO INVADSION [AS3] 我做的唯一一個Flash As3遊戲,是第一個也是最後一個,後來就沒再寫as3,不過as3還滿好玩的。

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.

對物品的感情 這個議題很奇怪,可是大部分的人都會有,物品是死的,壞了就淘汰,出新的就被替換。為何會有情感?