PHP7和HHVM解析PHP代碼的方式不同:PHP7使用標準的PHP解析器,生成HTML代碼,然后發送給客戶端,客戶端顯示出用戶期望的內容;HHVM首先把PHP代碼轉化為HipHop字節代碼,這個代碼再被翻譯成機器碼然后執行。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
什么是 HHVM?
在2008年,Facebook 啟動了一項工作,計劃開發一個工具 將 PHP 腳本轉換成 C++,這樣就可以被編譯后在 web 服務器上運行。目的是節省服務器資源,這是一個很重要的目標,因為 Facebook 的用戶量正在快速增長。從這個意義上講,這個項目是成功的,因為它可以讓服務器處理之前五到六倍的請求量。
時間回到2010年,Facebook 的服務器需求已經增加了很多,是時候考慮用新的創新來提升更大的效率?;谶@個需求,Facebook 開發了 HHVM。
HHVM 使用了 Just-In-Time (JIT) 編譯方式將 PHP 代碼轉換成某種字節碼。接下來把字節碼再轉換成機器碼并進行優化,讓它盡可能快的運行。
什么是PHP 7?
PHP 7 是 PHP 社區對 HHVM 的回應。PHP 7 發布的預覽版本號稱比之前的 PHP 5 的性能要提升100%。
你可能會問 PHP 的版本直接從 PHP5 跳到了 PHP7,答案是這樣的:PHP6 的開發開始于2005年,但是它的進展過于緩慢又出現了很多的問題,這樣 PHP6 在它還沒有發布正式版本之前就有了不好的名聲。所以PHP社區決定給這個語言的新版本直接命名為 PHP7。
真正的問題不是 PHP5 和 PHP7 之間的比較,因為已經很明顯了, PHP7 提供了更快速的運行速度。但是我們想比較的是 PHP7 和 HHVM。很多專家已經分別使用了這兩個方法來處理PHP代碼,并且揭示了一些有趣的結論。
比較 PHP7 和 HHVM 的異同:
在回答哪個更好之前,讓我們先來看一下他們之間的關鍵不同點和相似之處。
代碼解析:
PHP7 和 HHVM 之間的基本不同之處在于他們解析 PHP 代碼的方式。PHP7 使用標準的 PHP 解析器,它是一個可以給所有人使用的免費軟件,可以在服務器上直接解析和運行。它生成 HTML 代碼,然后發送給客戶端,客戶端顯示出用戶期望的內容。
相比之下,HHVM 首先把 PHP 代碼轉化為 HipHop 字節代碼,這個代碼再被翻譯成機器碼然后執行。在這個過程中 HHVM 會對代碼進行優化,優化一些影響執行效率的 PHP 代碼,目標是提高運行速度。
編寫代碼
PHP 解析器和 HHVM 都可以接受 PHP 代碼然后運行。這樣寫代碼的過程是完全一樣的。但是如果你想使用 HHVM,你需要在你的服務器上安裝 HHVM, 然后以命令行的方式通過 HHVM 命令來調用。
性能測試:
HHVM 比之前的 PHP 版本能提供更快速的性能。但是最近的性能測試認為至少在某些情況下 PHP7 是比 HHVM 稍微快些。讓我們來看一下由 Kinsta 來做的性能測試結果:
WordPress:運行在WordPress 4.1.1的 PHP7 每秒鐘比 PHP5.6 能執行超過兩倍的請求,但是沒有 HHVM3.6.1 提供的多,在測試中 HHVM 每秒鐘執行624個請求而 PHP7 只執行604個。
Drupal:PHP7 可以給 Drupal 用戶提供比 HHVM 更加明顯的優勢。PHP7 在 Drupal8 上的處理響應效率比 HHVM 高出超過37個百分點。
推薦學習:《PHP視頻教程》