讓PHP跑在JVM上——JPHP

來源:互聯網
上載者:User

JPHP是一個面向Java虛擬機器的PHP實現,支援PHP(5.3+)的很多特性。JPHP負責將PHP原始碼編譯為JVM位元組碼,使其能夠運行在JVM上,這一點和JRuby、Jython等實作類別似。它支援JDK 1.6及以上版本。該項目發起於去年10月。

JPHP無意替代Zend PHP引擎或Facebook HHVM(HHVM的思路是將PHP編譯為一種中間位元組碼,再通過JIT將位元組碼編譯為x64機器碼)。出於以下原因,設計者不打算為JPHP實現Zend執行階段程式庫(如Curl、PRCE等):

  • 能夠在PHP中使用Java類庫
  • 通過JIT和JVM提升效能
  • 使用更好的執行階段程式庫替換Zend PHP醜陋的執行階段程式庫
  • 將PHP語言的使用範圍擴充到Web之外
  • JVM對Unicode字串和線程支援更好

JPHP有如下功能:

  • JIT(比PHP 5.4快2-10倍)
  • 最佳化器(最佳化常量運算式、內嵌函式等)
  • 可以在php代碼中使用Java的類庫和類
  • Unicode字串(類似Java中的UTF-16)
  • 線程、通訊端
  • 環境架構(類似runkit zend擴充中的沙箱對象)
  • 支援GUI,基於Swing實現而且有所改進,提供了更為靈活的布局
  • 面向類和函數的內嵌緩衝系統
  • 面向類和函數的可選熱更新(Optional Hot Reloading)機制

語言方面的特性包括:

  • 完全支援PHP 5.2+(包括OOP)
  • 閉包(PHP 5.3),在閉包中自動綁定$this(PHP 5.4)
  • 完全支援命名空間(PHP 5.3)
  • 類的spl自動載入(PHP 5.3)
  • Iterators、ArrayAccess和Serializable
  • 類、數組和callable的類型約束(PHP 5.4)
  • 數組短文法(PHP 5.4)
  • 針對循環參考的GC(PHP 5.3)

更多特性可以查看該項目的README檔案。

此外,JPHP還提供了一些PHP不支援的特性,比如在__toString方法中可以使用異常、對標量的類型約束等。

JPHP並非改進PHP效能的第一次嘗試,到底效果如何,我們拭目以待。感興趣的讀者可以下載並動手嘗試一下。

來自:http://www.infoq.com/cn/news/2014/03/jphp

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.