PHPのJITコンパイラ「HipHop Virtual Machine」、Facebookがオープンソースで公開

2011年12月12日

Facebookは10日、PHPを高速に実行する仮想マシン「HipHop Virtual Machine」(hhvm)を公開しました

The HipHop Virtual Machine

HipHop Virtual Machineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。

コンパイラと同等以上の実行速度へ

HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop Virtual Machineも、これらの開発の延長線上にあるものです。

Our experiences with hphpc led us to start experimenting with dynamic translation to native machine code, also known as just-in-time (JIT) compilation.

HipHop compilerでの経験が、JITコンパイルと呼ばれるダイナミックなネイティブコードへの変換を行う実験的な実装のスタートとなった。

現在、HipHop Virtual Machineの実行速度は、インタプリタに比べれば1.6倍速く、一方でコンパイラと比べると0.6倍程度とのこと。しかしいずれはコンパイラと同等以上の実行速度が出るとFacebookでは予想しているようです。

We expect hhvm to rapidly close the performance gap with hphpc-compiled binaries over the coming months as the dynamic translator stabilizes and matures. In fact, we predict that hhvm will eventually outperform statically compiled binaries in Facebook's production environment,

hphpcによってコンパイルされたバイナリとhhvmとの性能の差は、ダイナミックトランスレーターが安定し完成度が高まることで、数カ月程度で急速に縮まるでしょう。実際のところ、hhvmは最終的にはFacebookの実環境で稼働しているコンパイルされたバイナリよりも高速になると予想しています。

Facebookは今後、PHPの実行をすべてHipHop Virtual Machineへ移行することを計画しています。

プログラミング言語をダイナミックにネイティブコードへ変換することで高速な実行を実現するJITコンパイラは、Java VMや.NETなどで使われ、最近ではJavaScriptの実行系でも実装されはじめています。これがPHPへオープンソースとして適用されることで、ほかのサーバサイドのスクリプティング言語でも似たような動きが始まるかもしれません。

あわせて読みたい

プログラミング言語 Facebook PHP オープンソース




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本


<!- script for simple analytics events -->