開發 MooPHP 框架時,為尋找最高效快取方式,對比兩種常見檔案快取策略:
include 的 PHP 檔案(如 return array(...);)。serialize() 後存檔,讀取時 unserialize() 還原。序列化快取(serialize)整體效能優於 include 方式。(詳細數據略,可下載測試程式自行跑分)
| 步驟 | include 方式 | serialize 方式 |
|---|---|---|
| 1 | 讀取檔案 | 讀取檔案 |
| 2 | 解析 PHP 程式碼(編譯為 opcode) | 反序列化資料結構 |
| 3 | 執行程式碼賦值給變數 | 賦值給變數 |
解析 PHP 陣列語法的開銷大於 unserialize() 直接重建陣列結構。
若安裝 opcode 快取,include 方式速度會超越 serialize,因為 PHP 檔案只需編譯一次,後續直接從共享記憶體載入 opcode。
CacheTest_IncludeFile.phpCacheTest_SerializeFile.php