トップ  > メモ一覧  > カテゴリ「HipHop」の絞り込み結果 : 1件

1件中 1 〜 1 表示  1 

No.2080 HipHopforPHP

HipHop for PHP

February 9th, 2010 by naoya | Filed under day.

HipHop for PHP の技術的な講演動画が ustream にあったので、チェックしてみました。動画は、全部で 40 分弱くらいですが、講演自体は 20 分くらい、その他は質問でした。

以下、動画からのメモです。

  • CPU の高い使用率が問題になっていた
  • 10,000 台のウェブサーバ
  • それぞれのリクエストに 800 ミリ秒かかっている
  • コードベースが巨大になるにつれて、さらに遅くなる
  • ハードウェアは、フリーではない
  • 言語ごとのベンチマークした結果の CPU の使用率
  • CPU の使用率が低い順 No1: C++, No2: Java, No3: C#, No4: Erlang, No5: Python, No6: Perl,  No7: PHP
  • PHP と Perl は同等、C++ や Java に比べると10 倍くらい遅いという結果
  • 高いメモリ使用率が問題
  • - 150M
    for ($i = 0; $i < 1000000; $i++) {
    $a[] = $i;
    }
  • - 750MB
    for ($i = 0; $i < 5000000; $i++) {
    $a[] = $i
    }
  • HipHop for PHP では、次の問題点を解消するために作った
  • 高い CPU の使用率を解消するため
  • 多くのメモリの使用率を解消するため
  • 他のシステムで既存の PHP のロジックを再利用するため
  • 拡張は、ほとんどの PHP 開発者には書くことが難しい作業
  • HipHop for PHP は、2年間の成果で、ソースコードの最適化された C++ コード(g++ を使う)の変換機
  • 効果は、ウェブサーバは 50% 以下に下がった、API は 2 倍のトラフィックに対して 30% 以下に下がった(APC を使った PHP コードベースと比べた結果)
  • 7つのステップを通して、コードを変換する
  • 本番環境でのデプロイは、通常の PHP コードでのデプロイとは異なっている
  • 複数のスレッドで一つのプロセスを起動している
  • 再起動している間のダウンタイムがない(port takeover… ポートを乗っ取り?)
  • 巨大なバイナリを置く
  • HipHop は、現在とてもシンプルなウェブサーバ上で使っている
  • これからのロードマップ
  • 現在、PHP 5.2 をサポートしているが、5.3 もサポートしたい
  • ウェブサーバのオプションとして Apache をサポートしたい
  • Facebook では、Apache 1.3 Prefrok で使っているとのこと
  • 同時にデータベースのコネクションも減っている
  • PHP の拡張はスレッドセーフでない問題は解決できていないとのこと

まだ、ちゃんと試していないのでよく分かりませんが、PHP なウェブサービスで PHP が CPU ボトルネックになっている場合には、物理サーバを減らすための有効なソリューションの一つになるかもしれないイメージをうけました。ただし、 Facebook では、まだとても単純なウェブサーバ上でしか使っていないそうので、実際のサービスに使うにまだまだ時間がかかりそうです。

あと、個人的には Java は C++ と同様のベンチマーク結果だということも注目です。

なお、HipHop for PHP のソースコードは、github でもうすぐ公開予定とのことです。

Tags:

引用元

更新:2010/02/11 11:38 カテゴリ: PHP  > HipHop ▲トップ
1件中 1 〜 1 表示  1 

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

Python

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0