前言
本文為《現代 PHP》一書的學習筆記。
環境
- Windows 10
- Wnmp 3.1.0
HHVM
HHVM,或稱作 Hip Hop Virtual Machine,這個 PHP 引擎在 2013 年被釋出,它的即時性(JIT)編譯器提供了比 PHP-FPM 好上數倍的效能。
PHP 語言是個傳統的、直譯的、非編譯式的語言,這表示 PHP 程式碼直到被指令列執行,或被當成請求發送到網頁伺服器時,才會被送到直譯器,轉變成一組現存的 Zend Opcodes(機器碼指令),Zend Opcodes 被 Zend Engine 所執行,但它們必須在每次執行時才轉變成機器碼,如此將消耗系統資源,比編譯式語言慢上許多。
Facebook 中的 PHP
Facebook 察覺到這個效能瓶頸,在 2010 年開始建立一個名為 HPHPc 的 PHP-to-C++ 編譯器,但是 HPHPc 無法與 PHP 語言完全相容,因此 Facebook 開始建立 HHVM,使用 JIT 編譯器來轉譯,並且最佳化此位元碼到 x86_64 機器碼,實作了許多低層級的效能優化,HHVM 的效能在 2012 年超越了 HPHPc 的效能。
HHVM 和 Zend Engine
Facebook 用 HHVM 測試許多熱門的 PHP 框架,以確保跟現實中的 PHP 5 程式碼相容,現在 Facebook 已經有了接近百分之百的相容性。
HHVM 現在仍然沒有百分之百的和傳統的 Zend Engine 相容,但是每天都往這個目標前進了一點。