ホームページ  >  記事  >  バックエンド開発  >  PHP を JVM 上で実行できるようにする - JPHP

PHP を JVM 上で実行できるようにする - JPHP

WBOY
WBOYオリジナル
2016-07-25 09:12:381664ブラウズ

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



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。