JPHP は Java 仮想マシン用の PHP 実装であり、PHP (5.3 以降) の多くの機能をサポートしています。 JPHP は、JVM 上で実行できるように、PHP ソース コードを 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 拡張機能のサンドボックス オブジェクトに似ています)
- Swingに基づいて実装され改良されたGUIをサポートし、より柔軟なレイアウトを提供します
- クラスと関数用の組み込みキャッシュ システム
- クラスと関数のオプションのホットリロードメカニズム
言語機能には以下が含まれます:
- PHP 5.2+ (OOPを含む) を完全にサポート
- クロージャ (PHP 5.3)、クロージャで $this を自動的にバインドします (PHP 5.4)
- 名前空間の完全サポート (PHP 5.3)
- クラス spl オートロード (PHP 5.3)
- イテレーター、ArrayAccess、シリアライズ可能
- クラス、配列、呼び出し可能オブジェクトの型制約 (PHP 5.4)
- 配列の短い構文 (PHP 5.4)
- 循環参照の GC (PHP 5.3)
その他の機能については、このプロジェクトの README ファイルをご覧ください。
さらに、JPHP は、__toString メソッドでの例外の使用、スカラーの型制約など、PHP がサポートしていないいくつかの機能も提供します。
JPHP は、PHP のパフォーマンスを向上させる最初の試みではありません。それがどの程度効果があるかを見ていきます。興味のある読者はダウンロードして試してみてください。
出典: http://www.infoq.com/cn/news/2014/03/jphp
|