PHP 是最流行的用於 web 開發的腳本語言之一。PHP 的最新版本,PHP 7 在性能上做了很大的優化。不過,PHP 還有一個競爭對手 HHVM (HipHop Virtual Machine) — 一個運行 PHP 代碼的虛擬工具。二者直接的比較正在升溫,那麼讓我們來看一下他們直接的性能對比吧。
什麼是 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:運行在WordPress4.1.1的 PHP7 每秒鐘比 PHP5.6 能執行超過兩倍的請求,但是沒有 HHVM3.6.1 提供的多,在測試中 HHVM 每秒鐘執行624個請求而 PHP7 只執行604個。
Drupal:PHP7 可以給 Drupal 用戶提供比 HHVM 更加明顯的優勢。PHP7 在 Drupal8 上的處理響應效率比 HHVM 高出超過37個百分點。
那些公司使用 HHVM?
除了開發出 HHVM 的 FaceBook 公司外,還有很多其他公司也采用了這個方案,在服務器上用 HHVM 運行 PHP 應用,包括 Wikimedia 和電子商務網站 Etsy。
Wikimedia:Wikimedia 擁有大量的教育內容,包括著名的在線百科全書維基百科。維基百科每 個月吸引著近五億的互聯網用戶,為了滿足這樣高級的需求,需要優化服務器的性能,和 PHP相比 HHVM 有一個顯著的優點,它可以同時加載多個 SPU 核心, 而 PHP 是單線程語言,不能被並行化。維基百科部署了 HHVM 後,CPU 的負載從50%降到了10%,用戶提交編輯時的平均響應時間減少到原來的一半,頁面的平均加載時間從原來的1.3秒降到了0.9秒。
Etsy: 擁有五千四百萬用戶的 Tesy 同樣迫切需要提高服務器性能,Etsy 的工程師對比了HHVM 和 PHP5.4 的性能,發現 HHVM 每秒可以處理280個服務器請求,而對於 PHP5.4,如果每秒的請求數超過了190次,服務器的響應時間就會急劇增加。
PHP 7 和 HHVM的前景如何?
由於 PHP 7 的穩定版本將在2015年11月發布,因此目前還沒有公司使用這個新的語言,由於 PHP 7 的 beta 版在基准測試中表現出色,未來能夠吸引更多公司使用 PHP 7。
PHP 的前途一片光明,那麼 HHVM呢?它可能會繼續活得很好。很多公司已經在網站中使用了 HHVM提高性能,在 PHP 和 HHVM 之間遷移不是一蹴而就的。Etsy 花了至少6個月的時間。由於 PHP7 和HHVM 相比性能提升不大,那些公司不太可能急於切換到PHP。
Facebook 仍然會繼續開發 HHVM。它最近宣布支持蘋果的操作系統,使在蘋果開發環境下工作的開發者可以使用這個技術。HHVM 的開發者相信在很多情況下 HHVM 比 PHP7 更快,包括 WorldPress。
為什麼 HHVM 和 PHP 7 對於網店老板存在競爭關系?
作為一個網店老板,你需要根據你的網店所在的平台決定是否使用 PHP7 或 HHVM。如果你的網站是用 WorldPress 創建的,那麼你可以看看最新版本的 HHVM 和 PHP 7 的基准測試結果,從測試結果可以發現兩者在性能上的差異,然後你就可以選擇解決方案,最大限度地減小頁面加載時間,服務器響應時間和 CPU 使用率。
選擇 HHVM 的原因
HHVM 使用動態翻譯技術,在大多數情況下(包括WordPress)可以提供更高的性能。
HHVM 在處理大量請求時,可以保證每個請求只使用少量的內存。
HHVM 開發者正在穩步增加這個引擎所能運行的 PHP 代碼的數量,它已經可以運行最新版本的 WorldPress,以及其他常見的 PHP 框架和應用。
HHVM 是開源的,盡管 HHVM 是 Facebook 開發的,但它是開源的,意味著任何人都可以使用和修改它的源碼。
選擇 PHP 7 的理由
PHP 7 在某些情況下比 HHVM 更快,包括運行 Drupal 8。
使用 PHP 7 不需要安裝設置 HHVM。
盡管很多 PHP 4 的功能在新版本中不再支持,但用 PHP 5 寫的代碼在轉換到 PHP 7 後將會如預期一樣工作。
PHP 7 由 PHP 社區開發,這是一群開發穩定可靠 PHP 版本久負盛名的人。
HHVM vs. PHP 7: 作出你的選擇
不要猶豫太久,Kinsta 建議那些在線的網站盡量在 PHP 7 與 HHVM 之間作出選擇,早點開始實施解決方案,讓你的網站性能得到優化。一個低效的網站也會讓你的聲譽受損,那將很難挽回。