[精讚] [會員登入]
2067

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] 解析二進位圖片 使用php來解析png圖片,把資料寫在16進位格式

[PHP]解決ksort新增的SORT_NATURAL|SORT_FLAG_CASE方法 php>=5.4中ksort函數多了SORT_NATURAL 和 SORT_FLAG_CASE 旗標,對舊版的PHP中要怎麼辦?

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

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

[PHP] 命名空間 namespace及 use PHP >=5.3 開始支援命名空間:namespace

[PHP] 好用的php常數 介紹PHP中 __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__等常數

隨機好文

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

為什麼要重造輪子? 什麼輪子?造什麼輪子?我為什麼要重造輪子?

UTF-8的網頁但IE8一片空白 UTF8編碼的網頁在Firefox 正常顯示、但IE8 就是空白,IE8編碼設定是「自動偵測」可是自動偵測到的是 big5...

詭異的創業思維 創業的思維中,有多少銀彈,有多少技術,有多少人脈,有多少時間等等,每個都要考慮進去,以熱忱建立的關係脆弱的像蘇打餅乾一樣..

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這