讓PHP跑在JVM上——JPHP
JPHP是一個面向Java虛擬機的PHP實現,支持PHP(5.3+)的很多特性。JPHP負責將PHP源代碼編譯為JVM字節碼,使其能夠運行在JVM上,這一點和JRuby、Jython等實現類似。它支持JDK 1.6及以上版本。該項目發起于去年10月。
JPHP無意替代Zend PHP引擎或非死book 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
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!