![]() |
HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. |
世界最大のソーシャルネットワークサービスFacebook。ユーザごとに画面構成の変更やアプリケーションの追加が可能という高いカスタマイズ性を提供しつつ、月4兆をこえるページビューをこなしている。この巨大なサービスを支える技術「HipHop for PHP」がオープンソースソフトウェアとして公開された。300,000行をこえるコードと50,000行のユニットテストコード。同技術はすでにFacebookのWebトラフィックの90%以上で活用され、PHPと同じライセンスのもとで公開されている。
HipHop for PHPはPHPのソースコードを最適化されたC++に変換するソースコード変換ツール。変換はPHPのコードを比較的そのままC++コードに置き換えることで実施される。なお、evel()などいくつかの関数は高速化のためにサポートから外されていると説明がある。変換されたソースコードはg++でコンパイルされ、ネイティブコードとして実行される。
一般的に、スクリプト言語はCやC++と比較して開発生産性が高く、一度開発したあとの繰り返し開発が簡単だとみられている。学習も容易でエンジニアも集めやすい。しかしスクリプト言語にはCやC++と比較すると実行速度が遅いという問題もある。HipHop for PHP: Move Fastによると、FacebookではPHPアプリケーション高速化のためにPHP処理の一部をPHPエクステンションとしてC++で開発することもしているが、この開発に従事できる開発者の数がPHPデベロッパよりも少ないことが紹介されている。
Facebookは日本の代表的なソーシャルネットワークサービスmixiと比較して、画面のカスタマイズ度もアプリケーションの組み込み度も高い。こうした高いカスタマイズ性と素早い開発を実施していくには、PHPのような開発効率が高くエンジニアを集めやすい言語が便利ということのようだ。しかしPHPはパワーを食う。そこで、デプロイ段階であらかじめC++に変換してコンパイルしておくことで性能もカバーする。開発効率と運用効率の双方をカバーするアプローチといえる。
PHPを別のプログラミング言語に変換して実行しようというアプローチは新しいものではない。すでにいくつかの実装が存在するが、HipHop for PHPは月4兆ビューをこえるFacebookですでに基盤技術として活用されているという実績が伴う。採用を検討にするにあたり十分に説得力のある材料といえる。
HipHop for PHPはFacebookのHaiping Zhao氏が8ヶ月をかけて基本となる仕組みをコードを開発。新しく2名のエンジニアを追加して10ヶ月開発。そのあとでプロダクションサーバにデプロイして試験を6ヶ月。合計2年ほどの開発期間をかけてから公開されているという。PHPはWebページやWebアプリケーションの開発言語として人気がある。HipHop for PHPはPHPで開発したシステムの高速化に活用できる技術として注目される。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
[北島三郎]「目立たなきゃだめ」と話題の“オオカミバンド”を激励 [12:30 2/11] ホビー |
|
目的は一体!? 肥前夢街道に現るバッジ売りの少猫(佐賀県) [12:08 2/11] キャリア |
|
つらい花粉症は対策グッズで乗り切ろう! [12:07 2/11] キャリア |
|
【アジア発!Breaking News】マンションの排水口で銃の試し打ち。階下水漏れで、銃器所持の男らを逮捕。(台湾) [12:07 2/11] キャリア |
|
【エンタがビタミン♪】『逆転裁判』の斎藤工、“ラー油入り手作りチョコ”で女性不信に。 [12:07 2/11] キャリア |