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へオープンソースとして適用されることで、ほかのサーバサイドのスクリプティング言語でも似たような動きが始まるかもしれません。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Facebook , PHP , オープンソース , スクリプト言語



≫次の記事
パネルディスカッション「Flashエンジニアが今後10年食べていくには?」
≪前の記事
Node.jsの最新版が中国のファイアウォールにブロックされたらしい

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


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



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus