HipHop for PHP

HipHop for PHP是一系列PHP手稿語言的程式碼轉換器的集合,它包含HPHPcHPHPiHPHPd以及HHVM,這四個指令碼引擎各有所不同,但是他們共用相同的執行時(Runtime)及工具集(Toolset)。HipHop是由Facebook所建立,他們用它來節省伺服器的資源。HipHop被發佈時,已經是高達60萬行由C++C所撰寫的程式碼,它以自由軟件發佈,採用PHP許可證 3.01版。

HipHop
開發者Facebook
首次發佈2010年2月2日 (2010-02-02)
目前版本
  • 3.15.0(2016年9月28日;穩定版本)[1]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C++, C
作業系統跨平台
類型程式碼轉換
許可協定自由軟件 (PHP許可證)
網站wiki.github.com/facebook/hiphop-php/
facebook.com/hphp

HipHop for PHP可顯著的增快PHP應用程式的速度,藉由2到6個已觀察到的要素,HipHop改善了網頁生成的效能[2][3]

歷史

一開始,HipHopHaiping ZhaoFacebook領銜開發,運行於CentOSFedora作業系統。在釋出之前,已經被開發了兩年,最後於2010年2月2日發佈,但由於技術的困難,實際釋出的時間延後18天[4][5],於2月20日發佈在公開的Git程式庫。

HPHPc

這是最原始版本的HipHop(被稱之為HPHPc),它可以將PHP的程式碼轉換成C++的程式碼,並且利用g++將它編譯成機器語言Facebook使用它多年,但由於他對於開發者並不友善,而且Facebook龐大的程式庫使得開發者在進行程式更動時,必須等待數個小時的編譯,所以HipHop在2013年2月19日被官方棄用[6]

HPHPi

HPHPc開發者模式版本(被稱之為HPHPi)被用來處理PHP程式碼,它在執行時期進行編譯,但與HPHPc使用相同的執行時期以及執行邏輯,比起HPHPc,它的執行效能較低,但它令開發者可以使用與產品發佈時相同堆疊的程式碼。目前HPHPi的支援也已經終止。

HPHPd

HipHop的除錯程式(被稱之為HPHPd)被用來作為HipHop執行時期的鍵盤互動介面,它允許開發者可以嘗試使用一些程式碼、緊繫執行時期的直譯器以及可以設置監視器或中斷點。HPHPd現在仍被支援及使用。

HHVM

這是當前版本的HipHop(被稱之為HHVM),被用以取代HPHPc以及HPHPi在產品的開發及發佈,HHVM藉由將 PHP 程式碼編譯為位元組碼 ,使其可運行於虛擬機器的環境,也可以利用客制的JIT在執行時期編譯為機械碼。當前FacebookPHP程式皆運行在HHVM上。

使用HipHop for PHP

HipHop for PHP是一個開放原始碼的專案,可在GitHub頁面存檔備份,存於互聯網檔案館)取得,它是採用PHP許可證授權。ubuntu上已編譯可直接執行的套件已經可以在HipHop專案的apt程式庫取得[7][8]

於2012年5月,HipHopwiki指出 目前已經支援PHP 5.3的多項特色[1]頁面存檔備份,存於互聯網檔案館

HipHopCentOSFedora上開發,目前在其他系統編譯可能不能正常運行,雖然在未來可能會加入其他作業系統的支援,但是現在,HipHop僅能運行於64位元架構的環境。

HipHop在執行PHP專案,有相當多的改進,也能減少記憶體使用量[9]並增加對TBBparallel_for的支援,以至於除了加速之外並顯著的減少記憶體使用量[10]

另見

參考文獻

  1. ^ Release 3.15.0. 2016年9月28日 [2018年3月13日]. 
  2. ^ HipHop for PHP: Benchmark. [2011-05-01]. (原始內容存檔於2011-05-16). 
  3. ^ Drupal 7: HipHop for PHP vs APC – benchmark. [2011-05-18]. (原始內容存檔於2011-05-19). 
  4. ^ PHP Creator Asks, Is Facebook's HipHop Just a 'Nifty Trick'?頁面存檔備份,存於互聯網檔案館
  5. ^ Repository documentation on February 8, 2010.頁面存檔備份,存於互聯網檔案館
  6. ^ Remove support for building HPHPc. [2013-03-18]. (原始內容存檔於2019-10-17). 
  7. ^ hiphop-php_2.0.0 release. 2013-03-14 [2013-03-18]. 
  8. ^ Prebuilt packages on Ubuntu 12.04. 2012-09-15 [2013-03-18]. 
  9. ^ WordPress on HipHop – White Paper« Open Parallel. Openparallel.wordpress.com. 2010-11-01 [2011-04-12]. (原始內容存檔於2011-03-16). 
  10. ^ TBB in WordPress – White Paper« Open Parallel. Openparallel.wordpress.com. 2010-11-01 [2011-04-12]. (原始內容存檔於2011-03-19). 

外部連結