核心要點
Facebook於2008年開始研發HipHop for PHP。他們的目標是加快PHP的執行速度,該項目的首個版本由HPHPc/HPHPi組成。 HPHPc是一個PHP到C 的轉換器,用於將代碼部署到生產服務器,而HPHPi則是一個在開發和調試階段使用的解釋器。
HPHPc在提升性能方面做得很好,但並非沒有問題:保持HPHPc和HPHPi的同步非常繁瑣,轉換後的代碼與解釋後的代碼之間仍然存在一些差異。這就是為什麼Facebook在2010年決定採用另一種方法,並創建了HHVM——一個旨在取代PHP使用的Zend引擎的新虛擬機。到2012年底,HHVM的性能與之前的HPHPc相當,並很快超越了它。
HHVM旨在同時實現與Zend引擎功能的兼容性和最佳性能。 Facebook聲稱,從PHP APC切換到HHVM後,速度提升了3到10倍,內存佔用減少了一半。當然,這實際上取決於應用程序(10倍的提升是針對Facebook的代碼庫)。本文不會關注兼容性或性能,因為已經有大量的資源可用,可以查看HHVM博客或搜索“hhvm benchmark”。要了解更多關於HipHop和HHVM的信息,請閱讀之前的SitePoint文章。
相反,本文將重點介紹Hack,它是PHP語言的改進版,旨在提高安全性、性能和開發效率。請注意,HHVM同時支持Hack和PHP。儘管Hack已用於Facebook的所有生產服務器,但目前洩露的信息很少。簡而言之,Hack是Facebook的PHP6——它旨在修復當前PHP的大多數問題,同時添加一些新特性,例如靜態類型。
目前並非所有工具和文檔都已發布。但是,最新的HHVM源代碼已經支持Hack。您可以安裝Vagrant虛擬機來開始試驗Hack並運行本文中的代碼片段:
# 确保你的机器上已安装Vagrant $ git clone https://github.com/vicb/hhvm-vagrant.git $ cd hhvm-vagrant $ vagrant up
現在您可以編寫您的第一個Hack程序了:
<?hh require "/vagrant/www/xhp/php-lib/init.php"; $hello = "Hello HACK!"; echo <html><title>{$hello}!</title><h1>{$hello}</h1></body></html>;
...(後續內容與原文類似,只是對語句進行同義詞替換和句子結構調整,保持原意不變)...
以上是HHVM和HACK-我們可以期望它們代替PHP嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!