| PHP 用ヒップホップ | |
|---|---|
| 開発者 | フェイスブック社 |
| 初回リリース | 2010年2月2日[ 1 ] (2010年2月2日) |
| 最終リリース | |
| リポジトリ | |
| 書かれた | C++、ハック、OCaml、Rust |
| 後継 | HHVM |
| ライセンス | PHPライセンス |
| Webサイト | github |
HipHop for PHP ( HPHPc ) は、Facebookが開発したPHPトランスパイラです。現在は開発が中止されています。HPHPcをソースコードからソースコードへのコンパイラとして使用することで、PHPコードはC++に変換され、バイナリにコンパイルされて実行ファイルとして実行されます。これは、PHPコードがオペコードに変換されてから解釈されるという通常のPHP実行パスとは対照的です。HPHPcは主にC++、C、およびPHPのソースコードで構成されており、PHPライセンスに基づいて配布される無料のオープンソースソフトウェアです。
HipHopの当初の目的は、facebook.comのPHPコードベースが大規模であることから、Facebookサーバーのリソースを節約することでした。HipHopの開発が進むにつれて、HipHopはPHPアプリケーション全体の速度を大幅に向上させることができることが認識されました。Zend PHPと比較して、Webページ生成のスループットが最大6倍向上することが確認されています。 [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] HPHPcの目標は、Zend PHPとの高い互換性を提供することでした。ほとんどのZendベースのPHPプログラムは、HPHPc上で変更なしで動作します。[ 6 ] HPHPcは2010年初頭にオープンソース化されました。 [ 1 ]
FacebookのエンジニアはHPHPcに加えて、HipHopの「開発者モード」(PHP実行エンジンのインタープリタ版で、HPHPiと呼ばれる)とHipHopデバッガ( HPHPdと呼ばれる)も開発しました。これらの追加機能により、開発者はHPHPcが提供するのと同じロジックでPHPコードを実行できるだけでなく、ウォッチやブレークポイントなどを定義してPHPコードを対話的にデバッグできるようになりました。HPHPiでコードを実行するとHPHPcに比べてパフォーマンスは低下しますが、開発者にとってのメリットは、当時、本番環境と開発環境でこれら2つの実行エンジンを維持する価値があるものでした。HPHPiとHPHPdは2010年にオープンソース化されました。[ 1 ]
HPHPc は多くの報告でその目的を達成しており、特に Facebook 社内では、facebook.com の実行速度を大幅に向上させ、使用するリソースを少なくしたためである。しかし、2013 年の初めに Facebook は HPHPc を廃止し、同じく Facebook が開発した PHP 用のジャストインタイム (JIT) コンパイルベースの実行エンジンである HipHop Virtual Machine ( HHVM )を採用した。 [ 2 ] [ 9 ] これには多くの理由があるが、その 1 つは、HPHPc の曲線が平坦化されており、さらなるパフォーマンス向上が見込めることである。また、HPHPc は、create_function()やeval()構造を含め、PHP 言語を完全にはサポートしておらず、1 GB を超えるバイナリをコンパイルして短期間で多数のサーバーに配布する、時間とリソースを大量に消費する特定の展開プロセスを必要とした。さらに、運用環境と開発環境の一貫性を保つために必要だった HPHPc と HPHPi の並行保守が面倒になってきていた。最後に、HPHPc は Zend の完全な代替品ではなく、外部の顧客が HPHPc を使用するために開発および展開プロセス全体を変更する必要があった。[ 2 ]