大眾對 PHP 直觀感覺:靈活腳本語言、庫豐富、使用簡單、安全、適合 Web 開發,但效能低落。PHP 效能真的如感覺那麼差嗎?本文圍繞此話題探討,從原始碼、應用場景、基準效能、對比分析等深入分析,並用真實數據說話。
主要從記憶體管理、變數、函數、執行機制分析。
類似 Nginx,PHP 內部基於記憶體池,引入記憶體池生命週期概念。對 PHP 腳本與擴充的所有記憶體操作進行託管。大小記憶體管理採用不同實現與優化,參考 zend_mm 文檔。採用一次初始化申請 + 動態擴容 + 記憶體標記回收機制,每次請求結束直接對記憶體池重新 mask。
PHP 為弱型別語言,內部所有 PHP 變數對應 Zval 類型:

變數方面 PHP 大量優化:Reference counting 與 copy-on-write 機制,保證記憶體使用優化、減少複製次數。陣列採用高效 hashtable 實現。參考 部落格分析。